<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title> 천천히 차근차근</title>
    <link>https://harrydony.tistory.com/</link>
    <description>공부하며 알게된 정보를 공유하고자 Java, mysql, aws, JavaScript, html, css, Spring, git 등 웹/앱 관련 정보를 기록하고 있습니다. 예전에 급하게 메모한 글들을 다시 들여다보며 복습하고, 업데이트하는 시간을 보내며 새로운 정보를 습득하고 공유합니다.</description>
    <language>ko</language>
    <pubDate>Tue, 7 Jul 2026 17:24:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>JooKit 주킷</managingEditor>
    <image>
      <title> 천천히 차근차근</title>
      <url>https://tistory1.daumcdn.net/tistory/3841428/attach/7a0182eda0254d338f144ba580081531</url>
      <link>https://harrydony.tistory.com</link>
    </image>
    <item>
      <title>[IntelliJ] Spring Boot Thymeleaf 사용하는 방법</title>
      <link>https://harrydony.tistory.com/1039</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;build.gradle 설정&amp;nbsp;&lt;/h2&gt;
&lt;pre id=&quot;code_1731209668483&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // 타임리프 템플릿 엔진 의존성 2-1
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' // 타임리프 템플릿 엔진 의존성 2-2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Thymeleaf 사용을 위한 의존성을 주입한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;application.properties&lt;/h2&gt;
&lt;pre id=&quot;code_1731209754624&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 타임리프
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트에서 타임리프 템플릿 엔진을 어떻게 사용할지에 대한 설정이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;설명&lt;/blockquote&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #afb9c3;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;spring.thymeleaf.prefix=classpath:/templates/&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;템플릿 파일의 위치를 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731209842100&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- suffix : 템플릿 파일의 확장자를 지정한다.&lt;br /&gt;예를 들어, main.html과 같은 템플릿 파일을 사용할 때, .html 확장자를 명시적으로 지정할 필요 없이 템플릿 이름만 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- mode : Thymeleaf가 HTML 문서를 어떻게 렌더링할지를 정의하는 모드를 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HTML5 모드는 HTML5 문법을 따르는 템플릿을 렌더링하는 설정입니다.&lt;/li&gt;
&lt;li&gt;예를 들어, Thymeleaf가 HTML5의 &amp;lt;!DOCTYPE html&amp;gt; 선언, 태그 속성, 빈 태그 등을 적절히 처리하게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>properties</category>
      <category>Spring Boot</category>
      <category>타임리프</category>
      <category>환경 설정</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1039</guid>
      <comments>https://harrydony.tistory.com/1039#entry1039comment</comments>
      <pubDate>Sun, 10 Nov 2024 12:40:48 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Spring Boot 프로젝트에 JPA 환경 설정하는 방법</title>
      <link>https://harrydony.tistory.com/1038</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;JPA 의존성을  build.gradle 에 추가&amp;nbsp;&lt;/h2&gt;
&lt;pre id=&quot;code_1730976587978&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
    runtimeOnly 'com.h2database:h2'  // H2 데이터베이스 의존성
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'  // JPA 의존성
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 라인의 jpa 의존성을 추가해 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 H2 데이터베이스를 설치하였고, 스프링부트 자바 프로그램에서 데이터베이스에 데이터를 저장하거나 조회하기 위해서는 JPA를 사용해야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러기 위해 필요한 JPA 설정을 해줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/1037&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.11.07 - [IT 유용한 정보] - [intelliJ] Spring Boot JPA 활용을 위한 H2 데이터베이스 설치 및 사용 방법&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730976687563&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[intelliJ] Spring Boot JPA 활용을 위한 H2 데이터베이스 설치 및 사용 방법&quot; data-og-description=&quot;Help.JPA: Java Persistence API스프링 부트는 JPA를 ORM 기술의 표준으로 사용하고 있다.JPA는 인터페이스 모음으로 이 인터페이스를 구현한 실제 클래스를 필요로 한다.JPA를 활용하기 위한 대표적인 실제&quot; data-og-host=&quot;harrydony.tistory.com&quot; data-og-source-url=&quot;https://harrydony.tistory.com/1037&quot; data-og-url=&quot;https://harrydony.tistory.com/1037&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ncJVs/hyXs3en7HW/gkUerXE94G0LyPtOPgZkiK/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947,https://scrap.kakaocdn.net/dn/PCzKL/hyXwogOJZl/X8sanMjU8BCzGyQdlkq4Kk/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947,https://scrap.kakaocdn.net/dn/badYdz/hyXwspZlTF/0Tqrzs97KgOWfR0BxkAXD1/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/1037&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://harrydony.tistory.com/1037&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ncJVs/hyXs3en7HW/gkUerXE94G0LyPtOPgZkiK/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947,https://scrap.kakaocdn.net/dn/PCzKL/hyXwogOJZl/X8sanMjU8BCzGyQdlkq4Kk/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947,https://scrap.kakaocdn.net/dn/badYdz/hyXwspZlTF/0Tqrzs97KgOWfR0BxkAXD1/img.png?width=753&amp;amp;height=947&amp;amp;face=0_0_753_947');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[intelliJ] Spring Boot JPA 활용을 위한 H2 데이터베이스 설치 및 사용 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Help.JPA: Java Persistence API스프링 부트는 JPA를 ORM 기술의 표준으로 사용하고 있다.JPA는 인터페이스 모음으로 이 인터페이스를 구현한 실제 클래스를 필요로 한다.JPA를 활용하기 위한 대표적인 실제&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;harrydony.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;build.gradle 을 추가하거나 변경하면 꼭, gradle refresh를 해주는 것! 잊지 않아야 한다.&lt;br /&gt;gradle refresh로 변경사항을 업데이트하는 방법은 위 게시글에서도 참고할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;application.properties 환경 설정 추가&lt;/h2&gt;
&lt;pre id=&quot;code_1730976821522&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# JPA
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 2개의 환경을 추가로 설정해 주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링부트와 하이버네이트를 함께 사용하려면 꼭 필요한 설정이다.&lt;br /&gt;SQL이 아닌 하이버네이트만의 SQL을 사용할 때 필요한 설정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;spring.jpa.hibernate.ddl-auto=update&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔티티를 기준으로 데이터의 테이블을 생성하는 규칙을 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;none: 엔티티가 변경되더라도 데이터베이스를 변경하지 않는다.&lt;/li&gt;
&lt;li&gt;update: 엔티티의 변경된 부분만 데이터베이스에 적용한다.&lt;/li&gt;
&lt;li&gt;validate: 엔티티와 테이블 간에 차이점이 있는지 검사만 한다.&lt;/li&gt;
&lt;li&gt;create: 스프링부트 서버를 시작할 때 테이블을 모두 삭제한 후 다시 생성한다.&lt;/li&gt;
&lt;li&gt;create-drop: create와 동일하지만 스프링부트 서버를 종료할 때에도 테이블을 모두 삭제한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 개발 환경에서는 update 모드를 이용하고, 운영 환경에서는 none 또는 validate를 주로 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>hibernate</category>
      <category>jpa gradle</category>
      <category>jpa 설정</category>
      <category>jpa 환경 설정</category>
      <category>ORM</category>
      <category>데이터베이스</category>
      <category>하이버네이트</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1038</guid>
      <comments>https://harrydony.tistory.com/1038#entry1038comment</comments>
      <pubDate>Thu, 7 Nov 2024 20:00:00 +0900</pubDate>
    </item>
    <item>
      <title>[intelliJ] Spring Boot JPA 활용을 위한 H2 데이터베이스 설치 및 사용 방법</title>
      <link>https://harrydony.tistory.com/1037</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;JPA: Java Persistence API&lt;br /&gt;&lt;br /&gt;스프링 부트는 JPA를 ORM 기술의 표준으로 사용하고 있다.&lt;br /&gt;JPA는 인터페이스 모음으로 이 인터페이스를 구현한 실제 클래스를 필요로 한다.&lt;br /&gt;&lt;br /&gt;JPA를 활용하기 위한 대표적인 실제 클래스로 하이버네이트: Hibernate 가 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 인터페이스는 클래스가 구현해야 하는 메서드들을 정의한 틀이라고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;H2 데이터베이스 설치하기&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;H2 데이터베이스는 주로 개발 환경에서 사용하는 자바 기반의 경량 DBMS이다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;DBMS 종류&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- MySQL&lt;br /&gt;- Oracle&lt;br /&gt;- PostgreSQL&lt;br /&gt;- MongoDB&amp;nbsp;&lt;br /&gt;- .. 등&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;RDBMS: Relational Database Management System&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- DBMS의 하위 개념으로, 데이터를 관계형 모델로 저장하고 관리할 수 있는 DBMS를 말한다.&lt;br /&gt;- 테이블과 테이블 간의 관계를 기반으로 데이터를 저장하고 관리하는 방식이다.&lt;br /&gt;- 종류: MySQL, Oracle, PostgreSQL 등&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MySQL Workbench, Sequel Pro, DBeaver, HeidiSQL 들은 DB 관리 툴 (Database Management Tool) 이다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스(DBMS/RDBMS)와 연결하여 데이터를 조회하고, 테이블 구조를 확인하고, 쿼리를 실행하는 등의 관리 작업을 편리하게 수행할 수 있도록 도와주는 클라이언트 프로그램이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;H2 데이터베이스 설치&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;947&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tidth/btsKBj7xuiK/QZ9e8b0A09oIzhDMtQQy9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tidth/btsKBj7xuiK/QZ9e8b0A09oIzhDMtQQy9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tidth/btsKBj7xuiK/QZ9e8b0A09oIzhDMtQQy9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftidth%2FbtsKBj7xuiK%2FQZ9e8b0A09oIzhDMtQQy9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;745&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;947&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;build.gradle 파일에서 공백에 우클릭 -&amp;gt; Generate 클릭&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFYHKf/btsKz3xUNQF/Nl2t4tTx9sB5aTXfkxTvP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFYHKf/btsKz3xUNQF/Nl2t4tTx9sB5aTXfkxTvP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFYHKf/btsKz3xUNQF/Nl2t4tTx9sB5aTXfkxTvP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFYHKf%2FbtsKz3xUNQF%2FNl2t4tTx9sB5aTXfkxTvP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;443&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Add Maven artifact dependency 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbqhFR/btsKzWFCJKD/RTob59rbkMxNZUNOiK98k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbqhFR/btsKzWFCJKD/RTob59rbkMxNZUNOiK98k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbqhFR/btsKzWFCJKD/RTob59rbkMxNZUNOiK98k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbqhFR%2FbtsKzWFCJKD%2FRTob59rbkMxNZUNOiK98k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;517&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Maven Repository 사이트에서 필요한 maven 또는 gradle을 다운로드 받아서 사용해왔지만, &lt;br /&gt;인텔리제이에서는 내부 기능으로 maven repository에 대한 인덱싱 작업만 해주면 작업 중에 원하는 gradle을 검색해서 바로 원격 저장소에서 내려받아 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt; &lt;/p&gt;
&lt;br /&gt;인텔리제이에서 maven repository에 대한 인덱싱 작업이 되어 있지 않다면, gradle을 검색하려고 해도 검색 결과가 나오지 않을 것이다. 그런 경우, 아래의 방법으로 인덱싱 작업을 해줄 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnmkT6/btsKzllMEN3/St64fP8eeKyJld8XUSbOk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnmkT6/btsKzllMEN3/St64fP8eeKyJld8XUSbOk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnmkT6/btsKzllMEN3/St64fP8eeKyJld8XUSbOk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnmkT6%2FbtsKzllMEN3%2FSt64fP8eeKyJld8XUSbOk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;428&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;File -&amp;gt; Manage IDE Settings -&amp;gt; Settings Sync 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1017&quot; data-origin-height=&quot;745&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpCa8Y/btsKA6Hafpe/vVeGYobBA95iZPMSpkA8K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpCa8Y/btsKA6Hafpe/vVeGYobBA95iZPMSpkA8K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpCa8Y/btsKA6Hafpe/vVeGYobBA95iZPMSpkA8K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpCa8Y%2FbtsKA6Hafpe%2FvVeGYobBA95iZPMSpkA8K1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;558&quot; data-origin-width=&quot;1017&quot; data-origin-height=&quot;745&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. build 검색 -&amp;gt; Build, Execution, Deployment -&amp;gt; Repositories 선택&amp;nbsp;&lt;br /&gt;2. &lt;a href=&quot;https://repo1.maven.org/maven2/&quot;&gt;https://repo1.maven.org/maven2/&lt;/a&gt; 선택 후 업데이트 -&amp;gt; OK 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vWwkL/btsKAMa8SzY/ZU1rj7ULok0FIOu4THn7Tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vWwkL/btsKAMa8SzY/ZU1rj7ULok0FIOu4THn7Tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vWwkL/btsKAMa8SzY/ZU1rj7ULok0FIOu4THn7Tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvWwkL%2FbtsKAMa8SzY%2FZU1rj7ULok0FIOu4THn7Tk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;703&quot; height=&quot;283&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인텔리제이 하단에 maven repository에 대한 인덱싱 작업 시작을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본인은.. 무엇이 문제인지 maven 원격 저장소에서 gradle 목록을 제대로 불러오지 못하여 gradle 코드를 찾아서 build.gradle 파일에 직접 설정해 주었다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NfsK5/btsKBaXj9KR/keKonmvJ9sY2KGmkKgGDKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NfsK5/btsKBaXj9KR/keKonmvJ9sY2KGmkKgGDKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NfsK5/btsKBaXj9KR/keKonmvJ9sY2KGmkKgGDKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNfsK5%2FbtsKBaXj9KR%2FkeKonmvJ9sY2KGmkKgGDKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;285&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1730972813194&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;runtimeOnly 'com.h2database:h2'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt; &lt;/p&gt;
&lt;br /&gt;runtimeOnly 란?&lt;br /&gt;&lt;br /&gt;애플리케이션이 실행될 때만 해당 라이브러리를 필요로 한다는 것을 의미한다. 이는 컴파일 단계에서는 필요하지 않지만 런타임 시에만 필요한 라이브러리를 정의하는 데 사용된다.&lt;br /&gt;&lt;br /&gt;이렇게 컴파일 또는 런타임 단계에서 실행할 라이브러리들을 명시해 주면, 컴파일 또는 런타임 단계에서 모든 라이브러리를 처리하지 않기 때문에 개발 환경과 컴파일 프로세스가 더 간결해진다.&lt;br /&gt;&lt;br /&gt;그리고 빌드시간이 단축되고 성능을 향상시킬 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;gradle을 추가하거나 변경하면, gradle을 refresh 해줘야 반영된다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방법: 상단 View -&amp;gt; Tool Windows -&amp;gt; gradle -&amp;gt; 프로젝트 우클릭 -&amp;gt; Refresh Gradle Dependencies 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;설치한 H2 데이터베이스를 사용하기 위한 추가 설정&amp;nbsp;&lt;/h2&gt;
&lt;pre id=&quot;code_1730973664073&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# DATABASE
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:~/local
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;src/main/resources 디렉터리에 application.properties 파일에 h2 데이터베이스를 사용하기 위한 설정을 추가&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;spring.h2.console.enabled : H2 콘솔에 접속할 것인지 묻는 항목으로 true로 설정했다. H2콘솔은 H2데이터베이스를 웹 UI로 보여준다.&lt;/li&gt;
&lt;li&gt;spring.h2.console.path : H2 콘솔에 접속하기 위한 URL 경로이다.&lt;/li&gt;
&lt;li&gt;spring.datasource.url : 데이터베이스에 접속하기 위한 경로이다.&lt;/li&gt;
&lt;li&gt;spring.datasource.driver-class-name : 데이터베이스에 접속할 때 사용하는 드라이버 클래스명이다.&lt;/li&gt;
&lt;li&gt;spring.datasource.username : 데이터베이스의 사용자명으로 기본값인 sa로 설정했다.&lt;/li&gt;
&lt;li&gt;spring.datasource.password : 데이터베이스의 비밀번호로 로컬에서 개발 용도로만 사용할 것이므로 비밀번호를 설정하지 않고 비워 두었다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;데이터베이스 파일 만들어주기&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;spring.datasource.url에 설정한 경로에 해당하는 데이터베이스 파일을 만들어야 한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1730974620234&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.datasource.url=jdbc:h2:~/local&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;~/ 이 경로이며, 마지막에 local은 폴더가 아닌, 사용할 &lt;b&gt;데이터베이스 명&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스를 사용할 경로에, 사용할 데이터베이스 명에 local&lt;b&gt;.mv.db&lt;/b&gt; 확장자로 파일을 생성해 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시로, spring.datasource.url=jdbc:h2:~/hello 의 경우라면 hello&lt;b&gt;.mv.db&lt;/b&gt; 파일을 생성해 주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;28&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d8jRvE/btsKBNm9oXl/5tiPZzrF5OtxH9yTHpx3Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d8jRvE/btsKBNm9oXl/5tiPZzrF5OtxH9yTHpx3Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d8jRvE/btsKBNm9oXl/5tiPZzrF5OtxH9yTHpx3Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd8jRvE%2FbtsKBNm9oXl%2F5tiPZzrF5OtxH9yTHpx3Vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;198&quot; height=&quot;42&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;28&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 데이터베이스 파일을 생성해 주었고, h2 console path로 지정한 /h2-console 으로 브라우저에서 접속해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;웹 브라우저에서 H2 콘솔을 통해 데이터베이스에 접근하는 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;H2 데이터베이스로 사용할 db 파일도 생성해 주었고, 데이터베이스 콘솔 경로로 지정한 path로 접속해 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;http://localhost:8080/h2-console&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JhRBU/btsKzqHqMTe/ki4NYuPgEKZGPkomjrBuA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JhRBU/btsKzqHqMTe/ki4NYuPgEKZGPkomjrBuA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JhRBU/btsKzqHqMTe/ki4NYuPgEKZGPkomjrBuA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJhRBU%2FbtsKzqHqMTe%2Fki4NYuPgEKZGPkomjrBuA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;503&quot; height=&quot;428&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 웹에서 H2 콘솔로 데이터베이스에 접근을 할 수가 있게 되었다.&lt;br /&gt;언어는 한글로도 선택할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 설정한 Driver Class와 User Name을 확인할 수 있다.&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt; &lt;/p&gt;
&lt;br /&gt;JDBC URL&amp;nbsp;&lt;br /&gt;&lt;br /&gt;위에서 설정해주었던, &lt;br /&gt;spring.datasource.url=jdbc:h2:~/local&amp;nbsp;&lt;br /&gt;-----&amp;gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jdbc:h2:~/local&lt;br /&gt;으로 변경을 필히 해주어야 한다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;마지막으로 Connect 클릭 ✅&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;JDBC 란?&lt;br /&gt;&lt;br /&gt;Java Database Connectivity&lt;br /&gt;&lt;br /&gt;자바 프로그램에서 데이터베이스와 &lt;b&gt;상호 작용&lt;/b&gt;을 하는 &lt;b&gt;자바 API 기술&lt;/b&gt;이다.&lt;br /&gt;&lt;b&gt;JDBC&lt;/b&gt;는 자바 프로그램과 DB를 &lt;b&gt;연결&lt;/b&gt;하여 데이터베이스 작업을 수행할 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;데이터베이스 접근 성공 !&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1025&quot; data-origin-height=&quot;791&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NwDk1/btsKAgD7NJI/KkDTNjsynxKurMNolCCMV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NwDk1/btsKAgD7NJI/KkDTNjsynxKurMNolCCMV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NwDk1/btsKAgD7NJI/KkDTNjsynxKurMNolCCMV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNwDk1%2FbtsKAgD7NJI%2FKkDTNjsynxKurMNolCCMV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;718&quot; height=&quot;554&quot; data-origin-width=&quot;1025&quot; data-origin-height=&quot;791&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>H2</category>
      <category>H2 콘솔</category>
      <category>개발 데이터베이스</category>
      <category>경량 데이터베이스</category>
      <category>스프링부트 개발 디비</category>
      <category>테스트</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1037</guid>
      <comments>https://harrydony.tistory.com/1037#entry1037comment</comments>
      <pubDate>Thu, 7 Nov 2024 19:34:10 +0900</pubDate>
    </item>
    <item>
      <title>[intelliJ] Spring Boot Gradle Dependency 업데이트 방법</title>
      <link>https://harrydony.tistory.com/1035</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;663&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pBYdL/btsKzKj5Z8p/GVVVimXaaCtt4KHDhcpHI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pBYdL/btsKzKj5Z8p/GVVVimXaaCtt4KHDhcpHI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pBYdL/btsKzKj5Z8p/GVVVimXaaCtt4KHDhcpHI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpBYdL%2FbtsKzKj5Z8p%2FGVVVimXaaCtt4KHDhcpHI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;488&quot; data-origin-width=&quot;663&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;선택: View -&amp;gt; Tool Windows -&amp;gt; Gradle&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eyuVaQ/btsKykHf7vJ/iqf7t9YajTkea1j5GYw071/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eyuVaQ/btsKykHf7vJ/iqf7t9YajTkea1j5GYw071/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eyuVaQ/btsKykHf7vJ/iqf7t9YajTkea1j5GYw071/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeyuVaQ%2FbtsKykHf7vJ%2Fiqf7t9YajTkea1j5GYw071%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;585&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;우측에 열린 Gradle 영역에서 Dependencies를 업데이트해 줘야 한다.&lt;br /&gt;&lt;br /&gt;1. 프로젝트 우클릭&amp;nbsp;&lt;br /&gt;2. Refresh Gradle Dependencies 선택&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>Dependency</category>
      <category>gradle update</category>
      <category>Refresh</category>
      <category>업데이트</category>
      <category>인텔리제이 gradle</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1035</guid>
      <comments>https://harrydony.tistory.com/1035#entry1035comment</comments>
      <pubDate>Wed, 6 Nov 2024 23:13:43 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ IDEA] 인텔리제이 Spring Boot 프로젝트 생성 방법</title>
      <link>https://harrydony.tistory.com/1034</link>
      <description>&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;프로젝트 생성&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lT6Ag/btsKzLJ0in1/yXT33byZzjTo7LfeUcI3r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lT6Ag/btsKzLJ0in1/yXT33byZzjTo7LfeUcI3r1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lT6Ag/btsKzLJ0in1/yXT33byZzjTo7LfeUcI3r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlT6Ag%2FbtsKzLJ0in1%2FyXT33byZzjTo7LfeUcI3r1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;478&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;New Project로 새로운 프로젝트 생성&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;711&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rWKyx/btsKzzXigFz/Je4nM1eXvevQAX1V35pmG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rWKyx/btsKzzXigFz/Je4nM1eXvevQAX1V35pmG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rWKyx/btsKzzXigFz/Je4nM1eXvevQAX1V35pmG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrWKyx%2FbtsKzzXigFz%2FJe4nM1eXvevQAX1V35pmG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;572&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;711&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Name: 프로젝트 명&lt;br /&gt;2. Location: 프로젝트 관리 경로&lt;br /&gt;3. Language: 개발 언어 선택&lt;br /&gt;4. Type: 빌드 관리 타입&lt;br /&gt;5. Group: 프로젝트 그룹&lt;br /&gt;6. Artifact: 프로젝트 식별자&lt;br /&gt;7. Package name: 패키지 이름은 클래스나 파일이 속한 패키지 경로를 의미(.java 소스 파일 최상단에 선언된다.)&lt;br /&gt;8. JDK: JDK는 IntelliJ IDEA에서 제공하는 Oracle OpenJDK를 바로 설치해서 사용했다.&lt;br /&gt;9. Java: 설정한 JDK와 동일한 버전으로 설정&lt;br /&gt;10: Packaging: Spring Boot는 별도로 톰캣을 설치하지 않도록 톰캣을 내장하여 제공한다. Packaging을 Jar로 설정하면 애플리케이션을 독립적으로 실행할 수 있기에 배포 및 유지 관리 과정을 간소화할 수 있는 장점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(본인은 JDK 안정성을 고려하여, JDK 버전을 21.0.5로 오라클에서 다운로드 받아서 다시 설정하였다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LcWq0/btsKyThYnMQ/DP87wcFLwGP818b4wEKCh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LcWq0/btsKyThYnMQ/DP87wcFLwGP818b4wEKCh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LcWq0/btsKyThYnMQ/DP87wcFLwGP818b4wEKCh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcWq0%2FbtsKyThYnMQ%2FDP87wcFLwGP818b4wEKCh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;573&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;JDK 21.0.5은 Spring Boot 3.2.x 이상에서 지원된다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Spring Boot DevTools&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 과정에서 생산성을 높여주는 도구 모음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 기능&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;자동 재시작(Automatic Restart)&lt;/b&gt;: 코드를 수정할 때마다 서버를 자동으로 다시 시작해 줘서 변경 사항을 바로 확인할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;라이브 리로드(Live Reload)&lt;/b&gt;: 변경 사항이 반영되면 웹 브라우저도 자동으로 새로 고침된다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;캐싱 비활성화(Disable Caching)&lt;/b&gt;: 개발 환경에서는 캐싱을 비활성화해서 변경 사항을 즉시 반영할 수 있도록 도와준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 목적&lt;/b&gt;: 개발할 때 효율적으로 서버를 재시작하면서 변경 사항을 확인하고 싶을 때 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Lombok&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바 코드에서 반복적으로 작성해야 하는 코드를 줄여주는 라이브러리.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 기능&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;어노테이션 기반 코드 생략&lt;/b&gt;: 예를 들어, @Getter, @Setter, @ToString, @EqualsAndHashCode, @NoArgsConstructor, @AllArgsConstructor 등의 어노테이션을 사용하면 자동으로 Getter, Setter, toString, equals, hashCode 메서드 등을 생성해 준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;빌더 패턴&lt;/b&gt;: @Builder를 통해 객체를 생성할 때 빌더 패턴을 쉽게 사용할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 목적&lt;/b&gt;: 반복되는 코드를 줄이고 코드 가독성을 높이며, 실수를 줄이고 싶을 때 유용하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Spring Web&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 애플리케이션을 개발하기 위해 필요한 기본 라이브러리들을 포함하고 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 기능&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;MVC 구조 지원&lt;/b&gt;: Spring의 MVC 패턴을 통해 웹 애플리케이션의 구조를 쉽게 설계할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RESTful API 개발 지원&lt;/b&gt;: 컨트롤러에서 @RestController 등을 사용해 RESTful API를 쉽게 개발할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;내장 웹 서버 지원&lt;/b&gt;: Tomcat이나 Jetty 같은 내장 웹 서버를 제공해 애플리케이션을 간단하게 실행할 수 있 .&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 목적&lt;/b&gt;: 웹 애플리케이션이나 RESTful API 서버를 개발하고자 할 때 필수적인 의존성이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>lombok</category>
      <category>Spring Boot</category>
      <category>롬복</category>
      <category>스프링부트 생성</category>
      <category>인텔리제이</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1034</guid>
      <comments>https://harrydony.tistory.com/1034#entry1034comment</comments>
      <pubDate>Wed, 6 Nov 2024 20:31:32 +0900</pubDate>
    </item>
    <item>
      <title>맥북에 설치된 여러 java 버전 확인하는 방법</title>
      <link>https://harrydony.tistory.com/1033</link>
      <description>&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;터미널 명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1730884179367&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls /Library/Java/JavaVirtualMachines/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어를 터미널에 입력하면,&amp;nbsp;&lt;br /&gt;여러 버전으로 설치된 JDK를 확인할 수 있다  &lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>java 확인</category>
      <category>version 확인</category>
      <category>버전 확인</category>
      <category>자바 버전</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1033</guid>
      <comments>https://harrydony.tistory.com/1033#entry1033comment</comments>
      <pubDate>Wed, 6 Nov 2024 18:10:11 +0900</pubDate>
    </item>
    <item>
      <title>vscode react default formatter setting</title>
      <link>https://harrydony.tistory.com/1032</link>
      <description>&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;Prettier - Code formmater Extensions 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;prettier 익스텐션을 먼저 설치&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;Preferences: Open User Settings (JSON)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mac -&amp;gt; comman + shift + p&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;window -&amp;gt; ctrl + shift + p (확인 필요)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;settings 파일을 열어 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;javascriptreact update&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주석 처리한 부분을 아래와 같이 수정해준 후 저장해 주면 완료.&lt;/p&gt;
&lt;pre id=&quot;code_1728351869941&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;editor.defaultFormatter&quot;: &quot;esbenp.prettier-vscode&quot;,
&quot;editor.formatOnSave&quot;: true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tIPBA/btsJYDyYIkQ/jB4JyoJBjGa561U3e1r3D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tIPBA/btsJYDyYIkQ/jB4JyoJBjGa561U3e1r3D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tIPBA/btsJYDyYIkQ/jB4JyoJBjGa561U3e1r3D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtIPBA%2FbtsJYDyYIkQ%2FjB4JyoJBjGa561U3e1r3D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;498&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>extensions</category>
      <category>react formatter</category>
      <category>Visual Studio Code</category>
      <category>리액트 정렬</category>
      <category>리액트 포맷터</category>
      <category>비쥬얼 스튜디오 코드</category>
      <category>자동 정렬</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1032</guid>
      <comments>https://harrydony.tistory.com/1032#entry1032comment</comments>
      <pubDate>Tue, 8 Oct 2024 10:45:30 +0900</pubDate>
    </item>
    <item>
      <title>git add 전체 취소, add 특정 파일 취소</title>
      <link>https://harrydony.tistory.com/802</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;git add &lt;span style=&quot;color: #f89009;&quot;&gt;명령어&lt;/span&gt; &lt;span style=&quot;color: #666666;&quot;&gt;다루기&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;git 모든 파일 선택 명령어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업데이트된 항목 전부를 선택하는 명령어&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711076341685&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;git 특정 파일 선택&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업데이트된 항목 중에서 특정 파일을 선택하는 명령어&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;git add [파일명(경로포함)]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;git add 한 모든 파일 취소 &lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;git reset HEAD&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;git add 한 특정 파일 취소 &lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;git reset HEAD [파일명(경로포함)]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>GIT, github, gitlab</category>
      <category>git</category>
      <category>git add</category>
      <category>Git Hub</category>
      <category>git reset</category>
      <category>git 명령어</category>
      <category>git 파일 추가</category>
      <category>Reset</category>
      <category>깃</category>
      <category>깃 추가</category>
      <category>깃 파일</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/802</guid>
      <comments>https://harrydony.tistory.com/802#entry802comment</comments>
      <pubDate>Fri, 22 Mar 2024 13:18:42 +0900</pubDate>
    </item>
    <item>
      <title>nginx 윈도우 명령어</title>
      <link>https://harrydony.tistory.com/754</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 실행&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- nginx가 설치된 &lt;b&gt;폴더&lt;/b&gt;로 이동하여 &lt;span style=&quot;color: #f3c000;&quot;&gt;&lt;b&gt;nginx.exe 실행&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;- &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;cmd창&lt;/b&gt;&lt;/span&gt;에서 nginx가 설치된 폴더로 이동하여 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;아래 커맨드 실행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1711075809976&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ nginx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 윈도우 명령어 종류&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 실행 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- cmd창에서 호출하여 아래 커맨드 실행&lt;/p&gt;
&lt;pre id=&quot;code_1711075914400&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ tasklist /fi &quot;imagename eq nginx.exe&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 종료&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- cmd창에서 nginx가 설치된 폴더로 이동하여 아래 커맨드 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 빠른 종료&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1711075964951&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ nginx -s stop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 재기동&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1711075979331&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;$ nginx -s reload&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;nginx 로그파일 다시 쓰기 시작&amp;nbsp;&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1711075999147&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ nginx -s reopen&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>cmd exe실행</category>
      <category>nginx cmd command</category>
      <category>nginx reopen</category>
      <category>nginx 명령어</category>
      <category>nginx 빠른 종료 명령어</category>
      <category>nginx 사용</category>
      <category>nginx 실행방법</category>
      <category>nginx 실행법</category>
      <category>nginx 윈도우 명령어</category>
      <category>reload</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/754</guid>
      <comments>https://harrydony.tistory.com/754#entry754comment</comments>
      <pubDate>Fri, 22 Mar 2024 11:56:09 +0900</pubDate>
    </item>
    <item>
      <title>[ jquery ] jquery-ui calendar 사용법</title>
      <link>https://harrydony.tistory.com/261</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker html 샘플 코드&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602422810266&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;연습 노트!&amp;lt;/title&amp;gt;

    &amp;lt;!-- jquery script --&amp;gt;
    &amp;lt;script src=&quot;https://code.jquery.com/jquery-3.7.1.js&quot; integrity=&quot;sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=&quot; crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
    
    &amp;lt;!-- datepicker script --&amp;gt;
    &amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js&quot; integrity=&quot;sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==&quot; crossorigin=&quot;anonymous&quot; referrerpolicy=&quot;no-referrer&quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;!-- datepicker css --&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/themes/base/jquery-ui.css&quot; integrity=&quot;sha512-lCk0aEL6CvAGQvaZ47hoq1v/hNsunE8wD4xmmBelkJjg51DauW6uVdaWEJlwgAE6PxcY7/SThs1T4+IMwwpN7w==&quot; crossorigin=&quot;anonymous&quot; referrerpolicy=&quot;no-referrer&quot; /&amp;gt;

    
    





&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;script&amp;gt;
        $(document).ready(function(){
            
            testDatepicker();

        }); 

        function testDatepicker() {
            $('.jq-date').datepicker({
                dateFormat: 'yy-mm-dd'
            });
            
        }
    &amp;lt;/script&amp;gt;

    &amp;lt;input type=&quot;text&quot; class=&quot;jq-date&quot;&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker 샘플 코드 설명&amp;nbsp;&lt;/h2&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker 사용에 필요한 라이브러리&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker 는 jquery 라이브러리를 활용한다.&lt;/h4&gt;
&lt;pre id=&quot;code_1711072734421&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- jquery script --&amp;gt;
&amp;lt;script src=&quot;https://code.jquery.com/jquery-3.7.1.js&quot; integrity=&quot;sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=&quot; crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;datepicker는 jquery를 활용해서 이용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker 는 jquery-ui와 jquery-ui 의 css 라이브러리를 활용한다.&lt;/h4&gt;
&lt;pre id=&quot;code_1711072740654&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;!-- datepicker script --&amp;gt;
&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js&quot; integrity=&quot;sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==&quot; crossorigin=&quot;anonymous&quot; referrerpolicy=&quot;no-referrer&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!-- datepicker css --&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/themes/base/jquery-ui.css&quot; integrity=&quot;sha512-lCk0aEL6CvAGQvaZ47hoq1v/hNsunE8wD4xmmBelkJjg51DauW6uVdaWEJlwgAE6PxcY7/SThs1T4+IMwwpN7w==&quot; crossorigin=&quot;anonymous&quot; referrerpolicy=&quot;no-referrer&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;jquery-ui.min.js&lt;/b&gt;&lt;/span&gt;는 datepicker 기능을 활용하기 위한 script이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;jquery-ui.css&lt;/b&gt;&lt;/span&gt;는 datepicker에 css 요소를 입혀주기 위해 사용하는 라이브러리이다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;datepicker 기본 설정한 이미지&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOvvx7/btsFZwxQZ2D/BlPOmOD1EJqDF0GEHLmDKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOvvx7/btsFZwxQZ2D/BlPOmOD1EJqDF0GEHLmDKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOvvx7/btsFZwxQZ2D/BlPOmOD1EJqDF0GEHLmDKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOvvx7%2FbtsFZwxQZ2D%2FBlPOmOD1EJqDF0GEHLmDKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;datepicker 이미지&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;425&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;586&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;datepicker의 속성과 css를 수정해서 다양하게 활용할 수 있지만, 나는 간단히 테스트해 보기 위한 용도로 기본적으로 날짜 형식만 설정해 주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;datepicker를 사용할 때 필요한 script는 최신 버전으로 수정을 해두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(게시물 업데이트 일자 : 2024년 03월 22일, 금요일)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;datepicker에 더 다양한 설정을 주는 방법은 추후 다른 게시물을 수정하거나 새로 게시하여 공유할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 샘플 코드를 참고하여 학업 및 업무에 도움이 되었으면 하는 마음으로 게시물을 수정해 본다.&lt;/p&gt;</description>
      <category>javascript</category>
      <category>Calendar</category>
      <category>CSS</category>
      <category>DatePicker</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>jquery-ui</category>
      <category>jquery-ui.min.css</category>
      <category>js 달력 구현</category>
      <category>달력 기능</category>
      <category>제이쿼리</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/261</guid>
      <comments>https://harrydony.tistory.com/261#entry261comment</comments>
      <pubDate>Fri, 22 Mar 2024 11:19:46 +0900</pubDate>
    </item>
    <item>
      <title>java 리터럴이란? 기본적인 데이터 타입, 자료형의 종류와 함께 이해해보자.</title>
      <link>https://harrydony.tistory.com/1031</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;java에서 리터럴(literal)이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어렵게 생각하지 말자. 소스 코드 그대로의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;값&lt;/b&gt;, &lt;b&gt;데이터&lt;/b&gt;&lt;/span&gt;를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;java 리터럴(literal) 예시 코드&amp;nbsp;&lt;/h3&gt;
&lt;pre id=&quot;code_1710257486440&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int testNum = 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;testNum 변수에 할당된 10이 &lt;u&gt;&lt;b&gt;리터럴(literal)&lt;/b&gt;&lt;/u&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;리터럴 타입과 비교할만한 java의 데이터 타입 (2가지)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바에는 &lt;b&gt;변수에 할당한 값&lt;/b&gt;을 의미하는 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;원시 타입(primitive type)&lt;/b&gt;&lt;/span&gt;과 특정 객체의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;주소를 가리키는 값&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;을 의미하는 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;참조 타입(reference type)&lt;/b&gt;&lt;/span&gt;으로 나뉜다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;2-1. 원시 타입(primitive type) 종류&amp;nbsp;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;byte&lt;/li&gt;
&lt;li&gt;short&lt;/li&gt;
&lt;li&gt;int&lt;/li&gt;
&lt;li&gt;long&lt;/li&gt;
&lt;li&gt;char&lt;/li&gt;
&lt;li&gt;boolean&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;2-2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;참조 타입(reference type) 종류&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Object&amp;nbsp;&lt;/li&gt;
&lt;li&gt;등등&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;Java 리터럴(literal) 설명 중에 데이터 타입(자료형) 이야기를 한 이유는?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;literal type도 데이터 타입 중 원시 타입의 유형과 비슷하기 때문에 아주 간략하게 소개해 보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;Java 리터럴(literal) 타입 6가지&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-1. 정수 리터럴&lt;/h3&gt;
&lt;pre id=&quot;code_1710258730566&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int number = 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;부동 소수점 리터럴&lt;/h3&gt;
&lt;pre id=&quot;code_1710258862833&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;double testPi = 3.14159; // 3.14159d 와 3.14159D 같은 의미 
float value = 2.0f; // 2.0F 같은 의미&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;- &lt;b&gt;double&lt;/b&gt;은 값에 d 또는 D를 붙여서 할당할 수 있지만 &lt;b&gt;생략&lt;/b&gt;할 수 있으며 예시 코드와 같이 &lt;u&gt;&lt;b&gt;보통 생략&lt;/b&gt;&lt;/u&gt;한 표현을 많이 사용한다.&lt;br /&gt;- &lt;u&gt;&lt;b&gt;float 리터럴&lt;/b&gt;&lt;/u&gt;은 F 또는 f 둘 다 사용 가능하나 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;f를 더 많이 사용&lt;/b&gt;&lt;/span&gt;하는 것 같다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;&lt;b&gt;&lt;br /&gt;부동 소수점&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;정수 부분과 소수점 이하 부분을 나타내며, 지수 부분을 포함할 수도 있음을 의미&lt;/u&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;문자 리터럴&lt;/h3&gt;
&lt;pre id=&quot;code_1710259238832&quot; class=&quot;java&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;char character1 = 'A';
char character2 = 'B';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열과는 다르게 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;u&gt;&lt;b&gt;작은따옴표(single quote)&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;문자열 리터럴&lt;/h3&gt;
&lt;pre id=&quot;code_1710259493450&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String hello = &quot;Hello&quot;;
String world = &quot;World&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자 리터럴과는 다르게 &lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;큰따옴표(double quotes)&lt;/b&gt;&lt;/span&gt;를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-5. 불리언(boolean) 리터럴&lt;/h3&gt;
&lt;pre id=&quot;code_1710259660676&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;boolean isTrue = true;
boolean isFalse = false;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;6-6. 이 외 리터럴&amp;nbsp;&lt;/h3&gt;
&lt;blockquote style=&quot;padding: 10px 25px 20px 25px; border: 1px solid #d0e9ec; background-color: #f6fdfe; color: #000; border-radius: 6px;&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;margin: 0; /*   padding-bottom: 1px; */   border-bottom: 2px solid #3cbaff; width: 50px; text-align: center; font-weight: bold; color: #114ebc;&quot; data-ke-size=&quot;size16&quot;&gt;Help.&lt;/p&gt;
&lt;br /&gt;&lt;u&gt;&lt;b&gt;null&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;참조형&lt;/b&gt;&lt;/span&gt;에 사용할 수 있는 &lt;b&gt;리터럴&lt;/b&gt;이다.&lt;br /&gt;- 가령 정수 또는 불리언(boolean) 리터럴에서 null을 사용하려고 하면 &lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;컴파일 오류&lt;/b&gt;&lt;/span&gt;가 발생한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;border-left: 5px solid #534df5; padding-left: 20px; background-color: #f2f6ff;&quot; data-ke-size=&quot;size26&quot;&gt;결론은?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역시나 맨 처음에 언급했던 대로&lt;u&gt;&lt;b&gt; java의 리터럴&lt;/b&gt;&lt;/u&gt;은 소스 코드 그대로의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;값, 데이터&lt;/b&gt;&lt;/span&gt;를 의미하며 이러한 리터럴들은 java에서 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;변수 할당, 조건문, 메소드 호출 등&lt;/b&gt;&lt;/span&gt;의 다양한 상황에서 사용되고 있고 앞으로 우리가 직접 목격하게 될 리터럴들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>double 생략</category>
      <category>java char 표기</category>
      <category>literal</category>
      <category>literal type</category>
      <category>리터럴 타입</category>
      <category>문자 리터럴</category>
      <category>부동 소수점 리터럴</category>
      <category>원시 타입</category>
      <category>정수</category>
      <category>참조 타입</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1031</guid>
      <comments>https://harrydony.tistory.com/1031#entry1031comment</comments>
      <pubDate>Wed, 13 Mar 2024 01:29:55 +0900</pubDate>
    </item>
    <item>
      <title>대체 JVM이 무엇이기에 Java를 공부하는 나를 이토록 괴롭히는거니?</title>
      <link>https://harrydony.tistory.com/1026</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JVM: Java Virtual Machine&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;자바 가상 머신&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자바 프로그램을 실행하는 데 사용되는 &lt;b&gt;가상 컴퓨터&lt;/b&gt;를 의미한다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;사용자의 컴퓨터에는 &lt;b&gt;JRE&lt;/b&gt;가 설치되어 있어야만 Java 애플리케이션을 실행할 수 있고&lt;br /&gt;JRE는 사용자가 웹 브라우저를 통해 Java 애플리케이션을 사용하는 동안에 필요한 &lt;b&gt;런타임 환경&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;JVM 특징&lt;/b&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;1. JVM은 Java로 만들어진 애플리케이션을 컴파일(java compiler)해서 얻은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;바이트 코드&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;를 &lt;br /&gt;컴퓨터가 이해할 수 있는 기계어로 변환해 준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;2. Java라는 특정 언어를 바로 기계어로 컴파일하지 않기 때문에 운영체제에 종속적이지 않고 독립적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;java compiler : 자바 소스 코드를 JVM이 이해할 수 있는 바이트 코드로 변환하는 작업&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;바이트 코드 : 자바 소스 코드(*.java)를 컴파일한 결과물로 JVM이 이 바이트 코드(*.class)를 해석하여 프로그램을 실행한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;JVM 역할&lt;/b&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자바 애플리케이션을 클래스 로더를 통해 읽고, 용도에 따라서 운영체제로부터 메모리를 할당받는다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JVM 이미지&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;1464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8oPaf/btsFI5tj2Xe/5FwJDJH2Z3kKBWd0vcWHEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8oPaf/btsFI5tj2Xe/5FwJDJH2Z3kKBWd0vcWHEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8oPaf/btsFI5tj2Xe/5FwJDJH2Z3kKBWd0vcWHEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8oPaf%2FbtsFI5tj2Xe%2F5FwJDJH2Z3kKBWd0vcWHEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;jvm 설명 이미지&quot; loading=&quot;lazy&quot; width=&quot;979&quot; height=&quot;750&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;1464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;1. 자바 프로그램을 실행하면 JVM은 운영체제로부터 클래스 파일(*.class)을 실행시킬 메모리를 할당받는다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;2. 자바 컴파일러(javac)가 자바 소스 코드(*.java)를 자바 바이트 코드(*.class)로 컴파일한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;3. Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 &lt;br /&gt;Runtime Data Area(실질적인 메모리를 할당받아 관리하는 영역)에 올린다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;4. Runtime Data Area에 로딩된 바이트 코드는 Execution Engine을 통해 해석된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;5. 이 과정에서 Execution Engine에 의해 Garbage Collection의 작동과 Thread 동기화가 이루어진다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;클래스 로더 &lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;JVM은 Java 애플리케이션을 실행하기 위해 필요한 클래스 파일들을 로드한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이는 필요한 클래스들을 메모리로 읽어오는 과정을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;'.class' 바이트 코드를 읽어 들여 class 객체를 생성하는 역할을 담당한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 클래스 로더는 클래스가 요청될 때 파일로부터 클래스를 읽어 메모리로 로딩하는 역할을 하며 자바 가상머신의 중요한 요소 중 하나이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. 클래스 로드가 classpath라는 환경 변수에 등록된 디렉토리에 있는 모든 클래스들을 먼저 JVM에 로딩한다.&lt;br /&gt;2. JVM에 로딩된 클래스만이 JVM에서 객체로 사용할 수 있다.&lt;br /&gt;3. 클래스 로딩은 클래스를 로딩하는 시점 또는 실행 중간에도 할 수 있다.&lt;br /&gt;4. 자바의 클래스 로딩은 세부적으로 로딩, 링크, 초기화라는 세 단계 과정을 거친다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;로딩&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;클래스 파일을 바이트 코드로 읽어 메모리로 가져오는 과정&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;링크&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;가장 복잡한 과정으로, 읽어본 바이트 코드가 자바 규칙을 따르는지 검증하고, 클래스에 정의된 필드, 메소드, 인터페이스들을 나타내는 데이터 구조를 준비하며, 그 클래스가 참조하는 다른 클래스를 로딩한다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;초기화&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;슈퍼 클래스 및 정적 필드를 초기화한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>Compiler</category>
      <category>Java</category>
      <category>Java Virtual Machine</category>
      <category>jre</category>
      <category>jvm 역할</category>
      <category>jvm이란</category>
      <category>자바 가상 머신</category>
      <category>컴파일</category>
      <category>클래스 로더</category>
      <category>특징</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1026</guid>
      <comments>https://harrydony.tistory.com/1026#entry1026comment</comments>
      <pubDate>Tue, 12 Mar 2024 00:51:03 +0900</pubDate>
    </item>
    <item>
      <title>맥북, Mac 사용자 유용한 단축키  모음</title>
      <link>https://harrydony.tistory.com/1025</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 맥북을 사용할 때 유용한 단축키 모음&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;&amp;amp;mdash;Pngtree&amp;amp;mdash;key keyboard hardware education line_4981478.png&quot; data-origin-width=&quot;5556&quot; data-origin-height=&quot;5556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oHU8A/btsFGJKjxZ8/FRKkash0tXcqOGaD4W6rLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oHU8A/btsFGJKjxZ8/FRKkash0tXcqOGaD4W6rLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oHU8A/btsFGJKjxZ8/FRKkash0tXcqOGaD4W6rLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHU8A%2FbtsFGJKjxZ8%2FFRKkash0tXcqOGaD4W6rLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;482&quot; height=&quot;482&quot; data-filename=&quot;&amp;mdash;Pngtree&amp;mdash;key keyboard hardware education line_4981478.png&quot; data-origin-width=&quot;5556&quot; data-origin-height=&quot;5556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 418px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #009a87;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 명령&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;background-color: #009a87; color: #ffffff;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 단축키&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;응용 프로그램 강제 종료&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;option + command + Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 사용 중인 창 종료&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 활성 상태인 앱 종료(비활성화)&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + option + W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;폴더/파일 등 미리보기/훑어보기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Y or space&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;응용프로그램 사용 중, 응용프로그램의 [환경설정] 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + ,&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;검색&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + F&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 38px;&quot;&gt;검색한 검색어 다음 위치로 이동(이어서 계속 탐색) &lt;br /&gt;: enter를 입력하지 않고도 손쉽게 이동 가능&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 38px;&quot;&gt;command + G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 38px;&quot;&gt;검색한 검색어 이전 위치로 이동(이어서 이전/위로 계속 탐색) &lt;br /&gt;: 마우스로 위로가기를 클릭하지 않고도 손쉽게 검색 가능&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 38px;&quot;&gt;command + Shift + G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Finder/Desktop 보기에서 응용프로그램 폴더 보기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Shift + A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Finder/Desktop 보기에서 유틸리티 폴더 보기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Shift + U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Spotlight 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Dock 고정/해제&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + option + D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;열려있는 응용프로그램을 순서대로 조회/선택해서 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;열려있는 응용프로그램을 역순으로 조회/선택해서 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Shift + Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;좀 더 쉽게 열려있는 응용프로그램을 조회/선택해서 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Tab + 왼쪽 화살표 or 오른쪽 화살표&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;이모티콘/특수문자 삽입&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + control + space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Finder에 새 폴더 생성&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Shift + N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Finder에서 휴지통 비우기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + Shift + delete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;화면 잠그기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;command + control + Q&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>IT 최신 모음</category>
      <category>Mac</category>
      <category>Mac key</category>
      <category>단축키</category>
      <category>맥북</category>
      <category>맥북 빠르게</category>
      <category>맥북 사용법</category>
      <category>맥북 유용한 단축키</category>
      <category>맥북 유저 단축키 모음</category>
      <category>맥북에서 단축키</category>
      <category>빠른 단축키</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1025</guid>
      <comments>https://harrydony.tistory.com/1025#entry1025comment</comments>
      <pubDate>Sun, 10 Mar 2024 19:51:04 +0900</pubDate>
    </item>
    <item>
      <title>[IT 실무]에서 업무를 보는 실무자 또는 [IT를 공부]하는 모든 분들, 그리고 [내가] 알아두면 아주 도움이 될 만한 [영어 단어] !   1탄</title>
      <link>https://harrydony.tistory.com/1024</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;&amp;amp;mdash;Pngtree&amp;amp;mdash;vector computer program development_1141583.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC1dMP/btsFy9XW1sA/2sea7MQwF2Fd2gOssQZV3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC1dMP/btsFy9XW1sA/2sea7MQwF2Fd2gOssQZV3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC1dMP/btsFy9XW1sA/2sea7MQwF2Fd2gOssQZV3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC1dMP%2FbtsFy9XW1sA%2F2sea7MQwF2Fd2gOssQZV3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;개발 환경 이미지&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;434&quot; data-filename=&quot;&amp;mdash;Pngtree&amp;mdash;vector computer program development_1141583.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #333333; color: #dddddd;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #333333; color: #dddddd;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;IT 개발자가 알아야 하는 기본적인 용어 모음&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 989px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;단어&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 뜻&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Accessibility&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;접근성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Agile&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;애자일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Algorithm&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;알고리즘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Analytics&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Architecture&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;구조&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Asset&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;자산&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Authentication&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;인증&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Authorization&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;권한 부여&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Automation&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;자동화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Backend&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;백엔드&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Bandwidth&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;대역폭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Branch&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;브랜치&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 57px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 57px;&quot;&gt;Build&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 57px;&quot;&gt;빌드&lt;br /&gt;(소스 코드를 실행할 수 있는&lt;br /&gt;파일로 만드는 것)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 76px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 76px;&quot;&gt;Cache&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 76px;&quot;&gt;캐시&lt;br /&gt;(자주 사용하는 데이터나 값을&amp;nbsp;&lt;br /&gt;미리 복사해 놓는 임시 장소를&amp;nbsp;&lt;br /&gt;가리킨다)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Certificate&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;인증서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 57px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 57px;&quot;&gt;Client&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 57px;&quot;&gt;클라이언트&lt;br /&gt;(네트워크로 연결된 서버로부터&amp;nbsp;&lt;br /&gt;정보를 제공받는 컴퓨터)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 95px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 95px;&quot;&gt;Cloud&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 95px;&quot;&gt;클라우드&lt;br /&gt;(인터넷을 통해서 접근할 수 있는&lt;br /&gt;서버와 이러한 서버에서 작동하는&lt;br /&gt;소프트웨어와 데이터베이스를&lt;br /&gt;의미한다)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Collaboration&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;협업&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 38px;&quot;&gt;Commit&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 38px;&quot;&gt;커밋&lt;br /&gt;(의미있는 변경을 저장)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 95px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 95px;&quot;&gt;Compile&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 95px;&quot;&gt;컴파일&lt;br /&gt;(인간이 이해할 수 있는 언어로&amp;nbsp;&lt;br /&gt;작성된 소스 코드를 컴퓨터가&lt;br /&gt;이해할 수 있는 언어로 바꿔주는&amp;nbsp;&lt;br /&gt;과정)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Compliance&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;준수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Constraint&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;제약 조건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;Configuration&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 19px;&quot;&gt;구성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 76px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 76px;&quot;&gt;Container&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 76px;&quot;&gt;컨테이너&lt;br /&gt;(어떤 환경에서든 실행할 수 있도록 필요한&amp;nbsp; 모든 요소를 포함하는 소프트웨어 패키지)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Debug&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;디버그&lt;br /&gt;(프로그래밍중에 발생하는 오류의&lt;br /&gt;원인을 찾아내서 수정하는 작업)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Debugging&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;디버깅&lt;br /&gt;(프로그래밍중에 발생하는 오류의&lt;br /&gt;원인을 찾아내서 수정하는 작업)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Dependency&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;의존성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Deployment&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;배포&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Disaster&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;재해&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Documentation&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;문서화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;Encryption&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 17px;&quot;&gt;암호화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 최신 모음</category>
      <category>IT 개발자</category>
      <category>IT 기본 용어</category>
      <category>IT 영단어</category>
      <category>개발 단어</category>
      <category>개발 용어 정리</category>
      <category>기본 단어</category>
      <category>용어 모음</category>
      <category>웹 개발자</category>
      <category>유용한 영어단어</category>
      <category>프로그래밍 영어</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1024</guid>
      <comments>https://harrydony.tistory.com/1024#entry1024comment</comments>
      <pubDate>Thu, 7 Mar 2024 02:54:03 +0900</pubDate>
    </item>
    <item>
      <title>[맥북] visual studio code 편집창, 터미널 이동 단축키 설정 방법</title>
      <link>https://harrydony.tistory.com/1022</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;실무를 담당하며 나의 백엔드 java 실력과 프론트 엔드 기본기가 아주 형편 없다는 것을&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;더 미룰 수 없기에 초심을 되찾으려 노력하며 열심히 공부를 하려 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #f89009; color: #ffffff;&quot;&gt;&lt;b&gt;맥북으로 vscode를 사용할 때, &lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #f89009; color: #ffffff;&quot;&gt;&lt;b&gt;편집창과 터미널을&amp;nbsp; &lt;/b&gt;&lt;b&gt;자유롭게 이동하기 위한 단축키 설정 방법&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 팔레트 열기&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;단축키 :&lt;/b&gt; &amp;nbsp;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;&amp;nbsp; command + shift +&amp;nbsp; p&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.&amp;nbsp; &lt;span style=&quot;background-color: #f3c000;&quot;&gt;&amp;nbsp; keyboard 검색&amp;nbsp; &lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp; &lt;span style=&quot;background-color: #9feec3;&quot;&gt;&amp;nbsp; Preferences: Open Keyboard Shortcuts (JSON) 선택/열기&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;주의:&lt;/b&gt;&lt;/span&gt; &lt;u&gt;Default 아님&amp;nbsp;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QGTmv/btsFvZNHQkd/KuguFqZmiQwIRweWMAlFq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QGTmv/btsFvZNHQkd/KuguFqZmiQwIRweWMAlFq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QGTmv/btsFvZNHQkd/KuguFqZmiQwIRweWMAlFq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQGTmv%2FbtsFvZNHQkd%2FKuguFqZmiQwIRweWMAlFq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;keyboard 검색 이미지&quot; loading=&quot;lazy&quot; width=&quot;1166&quot; height=&quot;260&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 열린 파일(파일명: keybindings.json)에&amp;nbsp; &amp;nbsp;&lt;span style=&quot;background-color: #9feec3;&quot;&gt; &amp;nbsp;아래 코드 추가&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1709589333233&quot; class=&quot;json&quot; data-ke-language=&quot;json&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[
  {
    &quot;key&quot;: &quot;cmd+;&quot;,
    &quot;command&quot;: &quot;terminal.focus&quot;,
    &quot;when&quot;: &quot;editorFocus&quot;
  },
  {
    &quot;key&quot;: &quot;cmd+;&quot;,
    &quot;command&quot;: &quot;workbench.action.focusActiveEditorGroup&quot;,
    &quot;when&quot;: &quot;terminalFocus&quot;
  }
]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;터미널로, 편집창으로의 이동 모두 &amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; command + ;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;동일한 단축키로 설정했다.&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;원하는 단축키로 설정하면 굿  &lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>terminal</category>
      <category>vscode</category>
      <category>vscode 터미널</category>
      <category>단축키</category>
      <category>비쥬얼스튜디오</category>
      <category>웹 개발</category>
      <category>터미널 단축키 설정</category>
      <category>팔레트</category>
      <category>프론트엔드 개발</category>
      <category>환경설정</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1022</guid>
      <comments>https://harrydony.tistory.com/1022#entry1022comment</comments>
      <pubDate>Tue, 5 Mar 2024 07:04:30 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot Logback 콘솔 console 색상을 예쁘게 출력하는 방법</title>
      <link>https://harrydony.tistory.com/1021</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;대충 넘어 갔던 부분들을 조금 더 찾아보고 이해하면서 프로젝트를 만들어보는 시간을 갖고 있습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;그러던 중에 &lt;b&gt;콘솔&lt;/b&gt;에 찍히는 &lt;b&gt;로그들의 시간과 메시지 패턴&lt;/b&gt;이 마음에 들지 않더군요.&lt;br&gt;&amp;nbsp;&lt;br&gt;그래서 또 열심히 구글링을 시작했습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;제일 마음에 드는 방법을 찾았고, 시도해보고 안되서 다른 방법을 시도해 보기를 여러 차례 반복했죠.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;아니, 이게 나만 안된다고????????;;&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;그러던 중, 프로젝트에서 콘솔 기본 설정값에 문제가 있지는 않을까 싶어서 해결 방법에 대한 접근 방향을 틀었죠.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;u&gt;&lt;b&gt;다행히 이유를 알아냈고, 방법도 찾았습니다.&lt;/b&gt;&lt;/u&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;혹시라도 저같이 '왜 이토록 안되는 것일까..' 라고 생각하시는 분들이 계실까 싶어 기록해 놓으려 합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1514&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bik4W2/btsEooAoVBP/7MR6Ns6bWtNYzlADPz8k8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bik4W2/btsEooAoVBP/7MR6Ns6bWtNYzlADPz8k8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bik4W2/btsEooAoVBP/7MR6Ns6bWtNYzlADPz8k8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbik4W2%2FbtsEooAoVBP%2F7MR6Ns6bWtNYzlADPz8k8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;760&quot; height=&quot;396&quot; data-origin-width=&quot;1514&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이랬던 콘솔을&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;862&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9STG2/btsEoM8XPwt/8cM6NfGmfK5UhY1dE1F2k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9STG2/btsEoM8XPwt/8cM6NfGmfK5UhY1dE1F2k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9STG2/btsEoM8XPwt/8cM6NfGmfK5UhY1dE1F2k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9STG2%2FbtsEoM8XPwt%2F8cM6NfGmfK5UhY1dE1F2k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;533&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;862&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이렇게 알록달록하게 바꾸는 방법을 바로 공유드릴게요 &lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;개발하면서 개발환경이나 기기를 마음에 들게 구성하면 왠지 더 기분이 좋은 그 느낌.&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;html&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;configuration&amp;gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- 로그 패턴에 색상 적용 %clr(pattern){color} --&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;conversionRule conversionWord=&quot;clr&quot; converterClass=&quot;org.springframework.boot.logging.logback.ColorConverter&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;conversionRule conversionWord=&quot;wex&quot; converterClass=&quot;org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;conversionRule conversionWord=&quot;wEx&quot; converterClass=&quot;org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter&quot; /&amp;gt;



&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- log 변수 값 설정 --&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name=&quot;CONSOLE_LOG_PATTERN&quot; value=&quot;${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){green} %clr(${LOG_LEVEL_PATTERN:-%7p}){cyan}&amp;nbsp;&amp;nbsp;%clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name=&quot;CONSOLE_LOG_CHARSET&quot; value=&quot;${CONSOLE_LOG_CHARSET:-default}&quot; /&amp;gt;



&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;encoder&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pattern&amp;gt;${CONSOLE_LOG_PATTERN}&amp;lt;/pattern&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;charset&amp;gt;${CONSOLE_LOG_CHARSET}&amp;lt;/charset&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/encoder&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/appender&amp;gt;



&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;root level=&quot;INFO&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;appender-ref ref=&quot;STDOUT&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/root&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;커스텀 로그 패턴의 컨버터를 먼저 설정해 줍니다.&lt;br&gt;conversionWord=&quot;clr&quot;가&amp;nbsp; logback color를 지정할 수 있도록 해줍니다.&lt;br&gt;&lt;u&gt;&lt;b&gt;conversionWord=&quot;clr&quot;은 Logback의 커스텀 로그 패턴을 정의할 때 사용하는 것으로, &lt;/b&gt;&lt;/u&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;원하는 이름으로 정의하여 사용할 수 있습니다.&lt;/b&gt;&lt;/u&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;부연 설명&lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;WhitespaceThrowableProxyConverter&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;이 컨버터는 예외 로그를 출력할 때 예외 클래스 이름과 예외 메시지를 보여주는 기본 형식을 사용합니다.&lt;br&gt;예외 스택 트레이스는 공백 문자로 구분되어 출력됩니다.&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt; ExtenedWhitespaceThrowableProxyConverter&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;br&gt;WhitespaceThrowableProxyConverter와 유사하지만 스택 트레이스 출력에서 추가 정보를 제공합니다.&lt;br&gt;예를 들어, 예외가 발생한 파일의 이름과 라인 번호를 출력합니다.&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이제, 이렇게 저렇게 여러 방법으로 Logback console color를 &lt;/b&gt;&lt;/h3&gt;&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;변경하려 했지만 실패했던 이유를 말씀드려볼게요.&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;1078&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P9Grb/btsEm7606Ek/qbDkzlX7ZeZy2guuln3ZK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P9Grb/btsEm7606Ek/qbDkzlX7ZeZy2guuln3ZK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P9Grb/btsEm7606Ek/qbDkzlX7ZeZy2guuln3ZK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP9Grb%2FbtsEm7606Ek%2FqbDkzlX7ZeZy2guuln3ZK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;555&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;1078&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;b&gt;그 이유는 바로..&amp;nbsp;&lt;/b&gt;&lt;br&gt;&lt;b&gt;이클립스 '환경 설정'에서 Ansi Console에 Plugin enabled 탭이 비활성화되어 있었기에 &lt;/b&gt;&lt;br&gt;&lt;b&gt;아무리 외부 라이브러리로 콘솔 환경에 변화를 주려고해도 적용되지 않았던 것이지요.&lt;/b&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;Plugin enabled 탭에 체크를 해주고 프로젝트를 재 구동시키면 콘솔에 폰트 색상과 정리된 패턴의 로그를 확인할 수 있습니다.&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;b&gt;지원되는 색상은 7가지로 blue, cyan, faint, green, magenta, red, yellow 입니다.&lt;/b&gt;&lt;/span&gt;&lt;br&gt;각 패턴이 끝나는 중간 중간 {blue}, {cyan}, {green} 등 폰트 색상이 지정된 부분에 다른 색상을 지정해줄 수 있습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;logback.xml 파일을 아직 만들어 본 적이 없으신 분들은&lt;br&gt;src/main/resources 폴더 하위에 logback.xml 파일을 생성한 후&amp;nbsp;&lt;br&gt;위에 공유드린 소스를 적용하시고 테스트 해보시면 좋을 것 같습니다.&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 최신 모음</category>
      <category>ansi console</category>
      <category>console ansi</category>
      <category>console color</category>
      <category>eclipse console color</category>
      <category>spring boot 콘솔</category>
      <category>이클립스 콘솔</category>
      <category>이클립스 콘솔 꾸미기</category>
      <category>이클립스 콘솔 색상</category>
      <category>이클립스 콘솔 컬러</category>
      <category>콘솔 꾸미기</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1021</guid>
      <comments>https://harrydony.tistory.com/1021#entry1021comment</comments>
      <pubDate>Fri, 2 Feb 2024 22:37:05 +0900</pubDate>
    </item>
    <item>
      <title>[Git] git, github repository 간단하게 연동해서 commit하는 방법</title>
      <link>https://harrydony.tistory.com/1020</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1238&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QG5AA/btsEnVLQ1go/xRIfwSQNHW2oDw61G8JrK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QG5AA/btsEnVLQ1go/xRIfwSQNHW2oDw61G8JrK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QG5AA/btsEnVLQ1go/xRIfwSQNHW2oDw61G8JrK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQG5AA%2FbtsEnVLQ1go%2FxRIfwSQNHW2oDw61G8JrK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;305&quot; data-origin-width=&quot;1238&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;오랜만에 이클립스 툴을 사용해서 Spring Boot로 사이드 프로젝트를 만들고 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;업무에 치여 쫓기듯이 일만 하고 살아왔는데, 이러다가는 저의 삶이 남아나지 않을 것 같다는 생각이 들어서.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;업무를 보는 것과 사이드 프로젝트를 처음부터 시작하는 것과 또 다른 재미와 느껴지는 게 다르더군요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트 커밋을 자주 하면 좋겠지만, 그러지 못했네요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;종종 github로 커밋을 하고 pull, push를 하고 있는데요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;회사에서는 svn을 사용하고 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;오랜만에 github를 사용하려니 참 ,,!&amp;nbsp; 그래도 저희에겐 구글과 chat gpt가 있으니까요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;이제 git 저장소에 프로젝트 소스를 보다 쉽게(?) 관리할 수 있도록 도와주는&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;Github를 사용하는 방법을 간략하게 소개드릴게요.&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;우선 프로젝트를 관리하고 있는 폴더에 git을 사용하기 위해 초기화를 해주어야 합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;git 명령어가 작동되지 않는 분들은 아래 링크를 참고하셔서 git을 설치하시고 진행해 주시면 되세요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1706867239895&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GITHUB 입문] Git 설치하기(2.35.1 이상, 상세한 설치법)&quot; data-og-description=&quot;[GITHUB 입문] 깃허브 사용법 - 2 Git 설치하기 Git과 GitHub에 관해 다룬 이전 글([GITHUB 입문] Git과 GitHub의 차이)을 작성하다 보니 한 가지 아쉬움이 있었습니다. 독자가 Git을 설치하여 직접 따라 하면 &quot; data-og-host=&quot;taewow.tistory.com&quot; data-og-source-url=&quot;https://taewow.tistory.com/13&quot; data-og-url=&quot;https://taewow.tistory.com/13&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cm8p8u/hyVfX0fJdq/fn4bBq3DTXADELKG2a1cN1/img.jpg?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270,https://scrap.kakaocdn.net/dn/c8D5Lf/hyVb9uxWwv/ecFpHOFwbpqKvHsAjcWqT1/img.jpg?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270,https://scrap.kakaocdn.net/dn/kgaOX/hyVb2CaRPG/qpRgeAIDK0TiltWKvxa8O1/img.png?width=623&amp;amp;height=490&amp;amp;face=0_0_623_490&quot;&gt;&lt;a href=&quot;https://taewow.tistory.com/13&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://taewow.tistory.com/13&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cm8p8u/hyVfX0fJdq/fn4bBq3DTXADELKG2a1cN1/img.jpg?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270,https://scrap.kakaocdn.net/dn/c8D5Lf/hyVb9uxWwv/ecFpHOFwbpqKvHsAjcWqT1/img.jpg?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270,https://scrap.kakaocdn.net/dn/kgaOX/hyVb2CaRPG/qpRgeAIDK0TiltWKvxa8O1/img.png?width=623&amp;amp;height=490&amp;amp;face=0_0_623_490');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[GITHUB 입문] Git 설치하기(2.35.1 이상, 상세한 설치법)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[GITHUB 입문] 깃허브 사용법 - 2 Git 설치하기 Git과 GitHub에 관해 다룬 이전 글([GITHUB 입문] Git과 GitHub의 차이)을 작성하다 보니 한 가지 아쉬움이 있었습니다. 독자가 Git을 설치하여 직접 따라 하면&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;taewow.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Git 초기화 , Git 저장소 생성&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706867280719&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git 저장소를 생성하고 아래 명령어로 숨김 파일, 폴더 목록을 조회하면 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.git 디렉터리&lt;/b&gt;&lt;/span&gt;가 생성된 것을 확인하실 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1706867377078&quot; class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;ls -al&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그다음으로,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Git 저장소를 사용할 github 계정 등록&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706867560120&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git config --global user.name &quot;계정명&quot;

git config --global user.email user-email&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;github에 회원가입한 &lt;b&gt;계정명&lt;/b&gt;과 &lt;b&gt;이메일&lt;/b&gt;을 git 저장소를 생성한 폴더에 등록을 해줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;❗️계정은 &quot;홍길동&quot; 이렇게 따옴표로 감싸주어야 합니다. email은 따옴표 사용하지 않고 입력을 합니다.&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;현재 폴더에서 git 저장소에 연동된 repository가 있는지 확인&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706867769761&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git remote -v&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;현재 폴더의 프로젝트가 어떤 git 저장소 레파지토리 연동되어 있는지를 확인할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;방금 만든 git 저장소이지만, 연동되어 있지 않을 때에는 아무 응답도 받지 않는다는 걸 확인해 보는 것도 좋을 거 같아요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;github에서 프로젝트 commit을 관리할 레파지토리를 생성 &lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;github에 로그인하신 후, 프로젝트 소스를 관리하실 레파지토리를 만들어줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2076&quot; data-origin-height=&quot;1756&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sVUvS/btsEm9wRgFO/QkxRUzQOSsXCF4GVg5LL91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sVUvS/btsEm9wRgFO/QkxRUzQOSsXCF4GVg5LL91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sVUvS/btsEm9wRgFO/QkxRUzQOSsXCF4GVg5LL91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVUvS%2FbtsEm9wRgFO%2FQkxRUzQOSsXCF4GVg5LL91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2076&quot; height=&quot;1756&quot; data-origin-width=&quot;2076&quot; data-origin-height=&quot;1756&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;저 같은 경우는, 1번과 2번의 파일을 먼저 만들지 않고 있어요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어떤 순서가 맞는지 잘 모르겠지만, 프로젝트를 만들고 코딩을 시작하고 레파지토리를 만들면서 README/.gitignore 파일을 만들게 되면&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트에 git init을 하고 commit을 하려고 할 때, 병합 오류가 발생하더라고요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;물론, 해결 방법이 있고 병합 이슈가 발생하지 않는 번거로움을 줄일 자기만의 스타일로 프로젝트를 시작하면 좋을 것 같아요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;git을 연동할 github 레파지토리 경로를 등록&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이제 git 저장소에 올린 파일을 github 레파지토리에 연동될 수 있도록 github 레파지토리 고유 경로를 등록해주어야 해요.&lt;/p&gt;
&lt;pre id=&quot;code_1706868448357&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git remote add origin https://계정명:github_token@github.com/레파지토리 경로&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[예시] 나름 중요해요!&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;계정명&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;git user name으로 설정한 github 계정명(honggildong)을 입력해 주시면 되세요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;github_token&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;정확히 기억이 나지는 않지만, 약 2년? 전까지는 패스워드로 소스 관리 가능했는데 보안 강화를 위해서인지 계정별로 고유 토큰을 유효기간까지, 그것도 길지 않게 30일/60일/90일/커스텀 등 짧은 유효기간의 토큰으로 소스 관리를 하도록 하고 있더라고요.&lt;br /&gt;유효기간이 지나면 새로 발급을 받아야 하며, &lt;u&gt;&lt;b&gt;발급받은 토큰은 새로운 토큰으로 재 발급은 가능하나 동일한 토큰으로 재 발급은 불가하니 꼭 개인 저장하신 후 사용해 주셔야 합니다.&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;레파지토리 경로&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;레파지토리 명을 memohada라고 지었다고 가정할게요. &lt;br /&gt;그러면, 레파지토리 명만 붙여주는 게 아닌&amp;nbsp;계정명을 포함해서 경로를 기입해 주셔야 합니다.&lt;br /&gt;아래 예시 작성 remote 주소 참고 부탁드릴게요.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706868971348&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git remote add origin https://honggildong:github_token@github.com/honggildong/memohada&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Github token 생성하는 방법&lt;/span&gt; 참고 링크 공유드립니다.&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 글을 보고 계신다면, github_token이 조금 생소하실 수 있으실 테니&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;github token을 생성하는 방법을 참고하실 링크 아래 남겨드릴게요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1706868765485&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GitHub] 깃허브(GitHub) 토큰 생성하기&quot; data-og-description=&quot;오늘은 깃허브 토큰을 생성해보고자 한다.   GitHub 토큰을 생성해보자. 1. 프로필-Settings 클릭 2. 왼쪽 메뉴바 하단의 Developer settings 클릭 3. Personal access tokens - Generate new token 클릭 4. Note, Expiration &quot; data-og-host=&quot;dandev.tistory.com&quot; data-og-source-url=&quot;https://dandev.tistory.com/entry/GitHub-%EA%B9%83%ED%97%88%EB%B8%8CGitHub-%ED%86%A0%ED%81%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://dandev.tistory.com/entry/GitHub-%EA%B9%83%ED%97%88%EB%B8%8CGitHub-%ED%86%A0%ED%81%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fjEh7/hyVb6EAlLN/KN8YqeqNlJKcgHITl9IW4k/img.png?width=225&amp;amp;height=225&amp;amp;face=0_0_225_225,https://scrap.kakaocdn.net/dn/PHShR/hyVb4mqf3x/3ee8Xi1cCUEI3NiNeBBKQ0/img.png?width=225&amp;amp;height=225&amp;amp;face=0_0_225_225,https://scrap.kakaocdn.net/dn/kyuaC/hyVcfO3VY6/ZcFTOOtPUbNTtdrbXcSAg0/img.png?width=681&amp;amp;height=910&amp;amp;face=0_0_681_910&quot;&gt;&lt;a href=&quot;https://dandev.tistory.com/entry/GitHub-%EA%B9%83%ED%97%88%EB%B8%8CGitHub-%ED%86%A0%ED%81%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dandev.tistory.com/entry/GitHub-%EA%B9%83%ED%97%88%EB%B8%8CGitHub-%ED%86%A0%ED%81%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fjEh7/hyVb6EAlLN/KN8YqeqNlJKcgHITl9IW4k/img.png?width=225&amp;amp;height=225&amp;amp;face=0_0_225_225,https://scrap.kakaocdn.net/dn/PHShR/hyVb4mqf3x/3ee8Xi1cCUEI3NiNeBBKQ0/img.png?width=225&amp;amp;height=225&amp;amp;face=0_0_225_225,https://scrap.kakaocdn.net/dn/kyuaC/hyVcfO3VY6/ZcFTOOtPUbNTtdrbXcSAg0/img.png?width=681&amp;amp;height=910&amp;amp;face=0_0_681_910');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[GitHub] 깃허브(GitHub) 토큰 생성하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오늘은 깃허브 토큰을 생성해보고자 한다.   GitHub 토큰을 생성해보자. 1. 프로필-Settings 클릭 2. 왼쪽 메뉴바 하단의 Developer settings 클릭 3. Personal access tokens - Generate new token 클릭 4. Note, Expiration&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dandev.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;업데이트된 프로젝트 소스 확인 (커밋할 소스 확인)&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706869301742&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWBQIZ/btsElklw7fD/tC2PZl0rJbAhbKDLTIUBBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWBQIZ/btsElklw7fD/tC2PZl0rJbAhbKDLTIUBBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWBQIZ/btsElklw7fD/tC2PZl0rJbAhbKDLTIUBBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWBQIZ%2FbtsElklw7fD%2FtC2PZl0rJbAhbKDLTIUBBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;686&quot; height=&quot;286&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;똑똑하게도 프로젝트 폴더를 관리하는 git의 상태를 보여줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어떤 파일을 수정했는지를 보여주며 골라서 커밋을 할 수도 있고, 업데이트한 모든 소스/파일을 커밋할 수도 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;변동된 모든 소스를 저장소 스테이징 영역에 파일을 추가 &lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706869626102&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;add . 명령어로 프로젝트에서 수정한 모든 파일을 한꺼번에 git 저장소 스테이징 영역에 올릴 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;git 저장소 스테이징 영역에 올라간 파일들은 커밋할 준비가 되는 거죠.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;commit 할 내용 정의&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706869717568&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git commit -m &quot;커밋 타이틀&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;작업한 파일들의 내용을 간추려서 커밋 타이틀을 기록해 줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;타이틀을 기록하고, 상세한 기록이 필요하다면 타이틀뿐만 아니라 커밋 상세 내용도 기록을 할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;오늘 다 설명드리지 못한 내용은 천천히 포스팅하도록 하겠습니다!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마지막으로, 커밋한 소스를 PUSH&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1706869898772&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git push origin master&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 작업으로 우리가 작업한 소스가 git 저장소에 올라가게 되고,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어느 장비에서든 소스를 다시 내려받아서 작업할 수 있으며&amp;nbsp;협업 또한 가능합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;작업 사항을 커밋한 기록을 토대로 상세히 살펴볼 수도 있고&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;무엇보다 서버 반영을 할 때, git에서 바로 내려받아 서버 배포를 할 수 있는 장점도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그럼 모두 파이팅 하세요!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 최신 모음</category>
      <category>git</category>
      <category>git remote</category>
      <category>github</category>
      <category>github처음</category>
      <category>git저장소</category>
      <category>git처음</category>
      <category>git최초</category>
      <category>git협업</category>
      <category>push처음으로</category>
      <category>프로젝트처음push</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1020</guid>
      <comments>https://harrydony.tistory.com/1020#entry1020comment</comments>
      <pubDate>Fri, 2 Feb 2024 19:39:13 +0900</pubDate>
    </item>
    <item>
      <title>(Mac)맥북, 이클립스 유용한 단축키 모음</title>
      <link>https://harrydony.tistory.com/1019</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mac_img.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLsoa7/btsFyPFeEoG/lTNGs0hK1CZemHacvWo6ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLsoa7/btsFyPFeEoG/lTNGs0hK1CZemHacvWo6ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLsoa7/btsFyPFeEoG/lTNGs0hK1CZemHacvWo6ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLsoa7%2FbtsFyPFeEoG%2FlTNGs0hK1CZemHacvWo6ak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;맥북 노트북 이미지&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;490&quot; data-filename=&quot;mac_img.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f89009; color: #ffffff;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;이클립스(Eclipse)로 개발할 때 아주 유용한 단축키 모음&amp;nbsp;&lt;/b&gt; &amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 494px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignCenter&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;명령&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;단축키&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;제어문으로 감싸기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;해당 블록 드래그, option + command + Z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;계층관계도(참조되고 있는 파일) 보기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;해당 클래스 위에서 command + T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;긴 커서 만들기 [일괄 수정]&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;option + command + A, 드래그, 수정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Start run server&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;tomcat server 선택, option + command + R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 라인 아래에 라인 삽입&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Shift + enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 라인 위에 라인 삽입&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Shift + command + enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 라인을 위/아래로 복사&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;option + command + UP or DOWN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;현재 라인을 위/아래로 옮기기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;option + UP or DOWN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;To upper case&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Shift + command + X&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;To lower case&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Shift + command + Y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;한줄 주석&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;Shift + command + C 또는 command + /&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;&amp;nbsp;한줄 주석 해제&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Shift + command + C 또는 command + /&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;블록 주석, 다중 주석&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;control + command + /&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;블록 주석, 다중 주석 해제&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;control + command + \&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Add Javadoc comment&lt;br /&gt;&lt;br /&gt;: 클래스, 메서드, 변수 등 요소 설명&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + J&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;라인 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;command + L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;자동완성&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;control + command + space&amp;nbsp;&lt;br /&gt;&lt;br /&gt;( 원래 control + space 이지만, 맥북 기본 명령어로 설정되어 있어서 이클립스 자동완성 단축키를 변경함)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Rename refactor&lt;br /&gt;&lt;br /&gt;: 동일한 문자열이나 변수명을 한 번에 수정,&amp;nbsp;&lt;br /&gt;파일명 수정&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + R&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;좀 전에 검색했던 문자를 이어서 검색&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;command + K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;좀 전에 검색했던 문자를 역순으로 검색&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + K&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;메서드, 변수, 클래스 등 레퍼런스가 &lt;br /&gt;workspace 어디에서 사용되는지 검색&lt;br /&gt;&lt;br /&gt;: workspace에서 현재 텍스트를 모두 검색&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;메서드, 조건문 등 코드 블록 시작/끝으로 바로 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;Generate 기능 사용&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + S&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;프로젝트, 클래스 등 만들기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;command + N or option + N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;변수 초기화 후, 여러 곳에서 사용한 변수들을 변수가 아닌&amp;nbsp;&lt;br /&gt;초기화했던 값으로 치환/변경&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;오류 부분으로 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;command + .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;package explorer 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 17px;&quot;&gt;option + command + Q, P&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>Eclipse</category>
      <category>Start run server</category>
      <category>단축키</category>
      <category>라인 이동</category>
      <category>맥북</category>
      <category>블록 주석</category>
      <category>오류 부분 이동</category>
      <category>이클립스 단축키</category>
      <category>이클립스 주석 처리</category>
      <category>자동완성</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1019</guid>
      <comments>https://harrydony.tistory.com/1019#entry1019comment</comments>
      <pubDate>Thu, 21 Sep 2023 23:29:06 +0900</pubDate>
    </item>
    <item>
      <title>[ flutter ] 맥북에 아주 쉽게 크로스 플랫폼 flutter를 설치하는 방법</title>
      <link>https://harrydony.tistory.com/1018</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;✅ flutter 공식 홈페이지에서 설치 파일 다운로드&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.flutter.dev/get-started/install/macos&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.flutter.dev/get-started/install/macos&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691980858043&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;macOS install&quot; data-og-description=&quot;How to install on macOS.&quot; data-og-host=&quot;docs.flutter.dev&quot; data-og-source-url=&quot;https://docs.flutter.dev/get-started/install/macos&quot; data-og-url=&quot;https://docs.flutter.dev/get-started/install/macos&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/l9nQo/hyTCISi5o3/hed8Ugc7gj7WHUMLyTdIlk/img.png?width=937&amp;amp;height=461&amp;amp;face=0_0_937_461,https://scrap.kakaocdn.net/dn/bAGXTx/hyTCAUgTM3/Nw5gsaiGll9LO2mwABe0O0/img.png?width=1072&amp;amp;height=576&amp;amp;face=0_0_1072_576,https://scrap.kakaocdn.net/dn/bjeLAc/hyTCyPH0O8/Gib3okBkuMzrMJybyuk7Yk/img.png?width=1072&amp;amp;height=576&amp;amp;face=0_0_1072_576&quot;&gt;&lt;a href=&quot;https://docs.flutter.dev/get-started/install/macos&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.flutter.dev/get-started/install/macos&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/l9nQo/hyTCISi5o3/hed8Ugc7gj7WHUMLyTdIlk/img.png?width=937&amp;amp;height=461&amp;amp;face=0_0_937_461,https://scrap.kakaocdn.net/dn/bAGXTx/hyTCAUgTM3/Nw5gsaiGll9LO2mwABe0O0/img.png?width=1072&amp;amp;height=576&amp;amp;face=0_0_1072_576,https://scrap.kakaocdn.net/dn/bjeLAc/hyTCyPH0O8/Gib3okBkuMzrMJybyuk7Yk/img.png?width=1072&amp;amp;height=576&amp;amp;face=0_0_1072_576');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;macOS install&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;How to install on macOS.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.flutter.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1966&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bShZU6/btsq1GomAcI/KFI5ho8BTcM8gWCoJpFrH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bShZU6/btsq1GomAcI/KFI5ho8BTcM8gWCoJpFrH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bShZU6/btsq1GomAcI/KFI5ho8BTcM8gWCoJpFrH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbShZU6%2Fbtsq1GomAcI%2FKFI5ho8BTcM8gWCoJpFrH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;zip 설치파일 이미지&quot; loading=&quot;lazy&quot; width=&quot;1966&quot; height=&quot;1024&quot; data-origin-width=&quot;1966&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나는 intel 이라 &lt;i&gt;&lt;b&gt;flutter_macos_3.10.6-stable.zip&lt;/b&gt;&lt;/i&gt; 다운로드.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;일단 다운로드 폴더로 내려 받으면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;✅ 적당한 위치에 development 또는 원하는 명으로 폴더 생성 후, 해당 폴더에 flutter 압축 파일 풀기&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;✅ 환경변수 설정&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691981108013&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vim ./.zshrc

#Flutter
export PATH=&quot;$PATH:/Users/[USER_DIR]/development/Flutter/bin&quot;

// .zshrc 파일 저장 후

$ source .zshrc&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;✅ 설치 완료된 flutter 버전 확인으로 설치가 제대로 되었는지 확인&lt;/p&gt;
&lt;pre id=&quot;code_1691981159324&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;flutter --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG6XUS/btsqZ1fNGJk/QEPYMKPcEkWmtnwhoFtt31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG6XUS/btsqZ1fNGJk/QEPYMKPcEkWmtnwhoFtt31/img.png&quot; data-alt=&quot;설치 성공!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG6XUS/btsqZ1fNGJk/QEPYMKPcEkWmtnwhoFtt31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG6XUS%2FbtsqZ1fNGJk%2FQEPYMKPcEkWmtnwhoFtt31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;설치 완료 확인 이미지&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;233&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;설치 성공!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;✅ Dart 설치 경로&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;flutter를 설치하면 Dart가 함께 설치 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1691981225483&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/Users/[path]/development/flutter/bin/cache/dart-sdk&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;dart sdk를 직접 설정해주어야 할 일이 있다면 해당 경로를 참조할 수 있게 해주면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;flutter를 설치하(려)면,&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;xcode, android studio, vscode 등이 필요하다고 하지만 나는 이미 모두 설치가 되어 있어서 패스!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;당장 앱을 만들 목적이 아닌 Dart 공부를 선행하기 위해 flutter를 설치해 보았다.&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아자아자 화이팅 !!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>DART</category>
      <category>dart 설치</category>
      <category>Flutter 설치</category>
      <category>구글</category>
      <category>다트 설치</category>
      <category>앱 개발</category>
      <category>크로스플렛폼</category>
      <category>프레임워크</category>
      <category>프론트엔드</category>
      <category>플러터 설치</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1018</guid>
      <comments>https://harrydony.tistory.com/1018#entry1018comment</comments>
      <pubDate>Mon, 14 Aug 2023 11:49:49 +0900</pubDate>
    </item>
    <item>
      <title>[ flutter ] 처음 접하는 flutter와 dart ..  시작한 계기.</title>
      <link>https://harrydony.tistory.com/1017</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인하우스 개발자로 일한지 횟수로는 3년차, 8월 초에 2년을 채웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나에게 남은 것은,, ?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입사할 당시보다는 조금이라도 수준이.. 향상되었겠지만 사실 체계적인 성장은 없다고 본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 자신이 한심하고 반성이 되며 뒤돌아보게 되는 요즘이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가, 연봉협상 동결이라니.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 사실은 나에게 지금 너무나도 큰 충격으로 아무것도, 그 무엇도 할 수 없게 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 이상 힘을 낼 수가 없고 내 자신이 한없이 작아졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;31살의 나는 다른 직군에서 즐겁고 보람있고 성취감 있을 것 같은 IT 직군으로 전향을 도전했는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금의 나는 한없이 작아져있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루하루 지쳐가며 남들과 비교하게 되고 주위 친구들과 비교하게 되고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자와 개발자를 두고 비교하게 되고, 인하우스 개발자로 나는 지금 회사에서 개발자로써&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 역량을 갖추었는가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혼자 서비스를 개발할 능력을 갖추었는가, 서비스 기획을 할 수 있는가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자사 서비스를 운영하기 위한 회사에서 그것도 사수 없이 혼자 일을 하며 체계란 없었고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루하루 부딪히며 일을 해왔고 코드 리뷰는 커녕, 난 대체.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'SI를 갔어야 했나, 많은 프로젝트를 경험하지 못했다'라는 생각에 하루하루 마음이 좀처럼 잡히지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게는 안된다.&amp;nbsp; 거의 2주를 그냥 허비했어.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일은 일대로, 그리고 내가 하고 싶은 공부하고 다시 마음을 다잡자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 주저리주저리 거릴 시간도 없다 나한테는.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 난 앱 만들기를 도전하려 하고 react-native와 flutter 중에 고민을 하다가 flutter를 선택했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작하자. 다시 !!&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1017</guid>
      <comments>https://harrydony.tistory.com/1017#entry1017comment</comments>
      <pubDate>Mon, 14 Aug 2023 11:39:54 +0900</pubDate>
    </item>
    <item>
      <title>[javascript] 부모 modal 안에 자식 modal을 닫았을 때 부모 modal로 인식하는 경우, A modal 안에 B modal 이벤트가 A modal로 인지할 때, modal 2개 이벤트</title>
      <link>https://harrydony.tistory.com/1016</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;#testModal 안에 #smallModal이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;#testModal이 큰 모달이고 그 안에 #smallModal이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;#testModal 을 닫았을 때 check 값을 true로 주고 조건을 걸어서 작업을 하려고 하는데&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;modal 안에 있는 작은 modal을 닫았더니 check 값이 true로 설정되어 내가 원하는 작업을 수행할 수 없었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;방법을 찾아본 결과, 아래와 같이 해결할 수 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686243015868&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var check = false;
$('#testModal').on('hidden.bs.modal', function (event) {
    var target = event.target;
    var relatedTarget = event.relatedTarget;

    // 이벤트가 발생한 요소와 그의 자식 요소인지 확인
    if (target.id === 'testModal' &amp;amp;&amp;amp; $(relatedTarget).closest('#testModal').length === 0) {
		check = true;
    }
});&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;1. 현재 hidden 이벤트를 수행하는 modal의 id가 내가 조건을 걸려고 하는 model의 id와 같은지 비교하고&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;2. 현재 hidden 이벤트를 수행하는 modal이 내가 조건을 걸려고 하는 modal의 자식 요소인지를 확인한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;closest('#testModal').length === 0 이라면 자식(작은 modal)이 아니라 조건을 걸려고 하는 #testModal 이 맞는 것이다!&amp;nbsp;&lt;/p&gt;</description>
      <category>javascript</category>
      <category>JavaScript</category>
      <category>JS</category>
      <category>js modal</category>
      <category>modal</category>
      <category>modal 2개</category>
      <category>modal 2개 hidden</category>
      <category>modal 2개 이벤트</category>
      <category>modal hidden 2개</category>
      <category>모달</category>
      <category>자바스크립트 modal</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1016</guid>
      <comments>https://harrydony.tistory.com/1016#entry1016comment</comments>
      <pubDate>Fri, 9 Jun 2023 02:00:38 +0900</pubDate>
    </item>
    <item>
      <title>[ quartz ] quartz 동일한 trigger 중복 실행 해결 방법, 인스턴스 중복, 인스턴스 2개가 같은 appBase를 바라볼 때.</title>
      <link>https://harrydony.tistory.com/1015</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;[제가 해결한 방법은 글 제일 하단 쯤에 있습니다.]&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;내가 유지보수하는 플렛폼, 1개의 서비스를 운영함에 있어 tomcat 서버 1개에 여러개의 host를 설정하여 운영하고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이미지, 은행 관련 업무 등 적절하게 프로젝트를 나눠서 관리하고 있는 셈이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;여러개의 프로젝트를 tomcat server.xml 파일에서 host로 분기하여 관리하고 있고 프로젝트 2개에서 quartz를 돌리고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;A프로젝트에서는 여러 개의 trigger를 만들어 quartz를 돌려도 설정한 시간에 문제 없이 작동이 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다만,, 나머지 B프로젝트에서 돌리는 quartz는 돌릴 때마다 동일한 trigger가 1-2초 텀을 두고&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;또는 1초의 텀도 두지 않고 동시에 실행이 되는 문제를 보였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;B프로젝트에서 quartz가 중복 실행되는 문제는 내가 입사하기 전부터 문제였으며 중복 실행 문제로 인하여 quartz를 돌려야 한다면&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;A프로젝트에서 quartz를 돌려야 했고, quartz를 돌리기 위해서 B프로젝트에 있는 소스를&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;A프로젝트에 중복으로 작성하는 모습이 보여졌다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;내가 quartz를 돌릴 작업은 없었고 단 한번 있었지만 quartz를 필요로 하는 작업이 중단되어 크게 의미가 있지 않아 굳이 쿼츠가 잘 돌아가는 A프로젝트에 코드를 중복으로 만들어서 쿼츠를 돌리고 싶지는 않아서 그저 내부적인 알림 용도였고 중요도가 낮았기에 크게 신경을 쓰지 않았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 이제 쿼츠가 잘 돌아가지 않는 B프로젝트에서 쿼츠를 돌릴 때가 왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;local에서는 분명히 한번만 돌아가는데 서버 반영을 하면 역시나 쿼츠 동일 trigger가 중복으로 동시에 실행이 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;아래는 내가 서치한 quartz 중복 실행 원인 몇가지이다.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;web.xml에 servlet-context.xml 파일을 중복으로 로드하게 구현해서&lt;/li&gt;
&lt;li&gt;quartz를 실행하는 bean을 중복으로 등록했거나 어딘가에서 또 중복으로 불러오고 있어서.&lt;/li&gt;
&lt;li&gt;servlet-context.xml 파일에 bean을 등록하고 quartz 구현부(QuartzJobBean 상속 받은 클래스)에서 @Component 어노테이션을 작성하면서 빈이 한번 더 등록되어서.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;.......&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;많은 원인들이 있었지만 대체적으로 위 3가지 원인을 제일 많이 접하였고 해결 방안도 바로 찾을 수 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 아무것도 나에게는 해당되지 않았기에 해결되지도 않았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;servlet-context.xml 파일을 2번 로드 하는 것 같지도 않았고, servlet-context.xml 파일 내에서 bean을 중복으로 등록하지도 않았으며&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;quartz구현부 클래스에 @Component 어노테이션을 제거해도 쿼츠는 중복으로 실행 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다른 해결 방법으로는 tomcat server.xml 파일의&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;autoDeploy=&quot;true&quot; -&amp;gt; autoDeploy=&quot;false&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;autoDeploy=&quot;false&quot; 로 변경을 해보라고 해도 해결되지 않았다.&amp;nbsp; 그 외 다른 값들도 false로 수정해도 마찬가지였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686237573766&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;Host name=&quot;admin.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;admin.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;
  

&amp;lt;!-- 아래로 변경  --&amp;gt; 
  
  
&amp;lt;Host name=&quot;admin.test.com&quot;  appBase=&quot;\&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
	&amp;lt;Context path=&quot;&quot; docBase=&quot;www.test.com&quot; reloadable=&quot;true&quot;/&amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;admin.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
&amp;lt;/Host&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;appBase를 &quot;\&quot;으로 또는 &quot;&quot;으로 변경해주고&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Context를 추가해서 docBase를 설정해주라고 해도 나는 해결되지 않았다,,,...&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아마도 다른 분들의 경우와 동일한 경우가 아니였나보다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;다른 분들은 위 키워드로 찾아봐주셔도 해결이 될 수도 있을 것 같습니다.&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;일단 열심히 서칭한 결과 내가 운영하는? 유지보수하는? 관리하는?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;서비스의 쿼츠가 2번 중복으로 실행되는 문제의 원인을 알아냈다.&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686237746229&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;Engine name=&quot;Catalina&quot; defaultHost=&quot;www.test.com&quot;&amp;gt;

  &amp;lt;Host name=&quot;www.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;www.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;

  &amp;lt;Host name=&quot;admin.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;admin.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;
  
&amp;lt;/Engine&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위는 내가 운영하는 서비스의 tomcat server.xml 파일 일부 수정본이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;우리 서비스는 각 서버네임에 따라서 실행시킬 프로젝트를 구분하고 있는데 그 중 2개의 서버네임이 동일한 appBase를 바라보고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 말은 1개의 프로젝트를 war 파일로 배포했지만 2개의 host로, 인스턴스가 1개가 아닌 2개가 생성된 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;쿼츠를 돌리면서 2개의 인스턴스가 생겨나면 무엇이 문제일까?&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;클라이언트의 호출을 받아 각 서버네임으로 별도의 추가 작업을 해주기 위해서 저렇게 host를 2개로 나눠서 관리를 해왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아, 맨 위에서 쿼츠 중복 실행 문제가 없다는 A프로젝트는 별도 host이며 appBase는 다른 프로젝트(경로)를 바라보고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;클아이언트의 호출을 받아 서버네임으로 분기되어 서비스가 작동될&amp;nbsp; 때는 크게 문제가 되지 않아 보였지만&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;(문제를 해결하고 보니 서비스가 상당히 가벼워진 느낌!)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;쿼츠가 실행될 때는 문제가 안될 수가 없었던 구조인 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;쿼츠는 클라이언트 호출과는 상관없이 백그라운드에서 독립적으로 실행되는 작업으로,&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;내 경우의 문제는 ???&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; 2개의 host로 설정된 2개의 인스턴스에서 독자적으로 각각 쿼츠가 실행된 것이다....&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;원인을 알았으니 해결을 해야한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;quartz clustering 이라는 것을 찾아보았다. 열심히 찾았다. 해답은 얻지 못했다. 나에게는 어렵게 느껴졌고, 어렵고 ,,,, 좀 그랬다. 라는 말보다는 뭔가 이거보다 쉬운 방법이 있을 것 같았다!!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;quartz clustering은 단순히 quartz의 중복 실행을 막기 위한 방법 같지가 않았다. 더 좋은, 우월한 녀석이라고 해야 할까.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;host name을 얻어서 쿼츠를 1번만 돌리고 싶었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;host name을 얻지 못했다. quartz는 백그라운드에서 작동되는 녀석으로 HttpServletRequest 사용을 권장하지 않았고&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;내가 방법을 찾지 못한 것인지 도저히 나로써는,,, host name을 얻을 수가 없었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;tomcat 객체를 생성해보기도 하고 MBeanServer로 defaultHost를 얻으려 시도도 해봤는데 내가 얻은 defaultHost는 server.xml 파일에 직접 설정 해놓은 defaultHost로써 구분을 할 수 없는 명이었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;엔진을 2개로 나눠서 설정을 해도 된다고도 하던데 그렇게 해보지는 않았다. 아, 엔진명을 얻을 수 있어 보여서 2개로 나눌까 하다가 그것도 현재 쿼츠를 돌리는 엔진명을 얻을 수 있는게 아니라 특정 엔진명으로 검색을 해서 host명을 조회할 수 있는 것 같았다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나는 ,,, 당장 지금, 현재. 쿼츠를 돌리는 시점의 host name을 알고 싶었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;결과는?&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;실패&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다시 찾는다.&amp;nbsp; 서칭한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;한글로 검색했을 때 내가 볼거는 다 봤다,, 비슷비슷하다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;탐착치 않은 영어 실력으로 검색 시작.&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;검색 결과를 연다. 닫는다. 연다. 마음에 들지 않는다. 닫는다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;연다. 닫기를 반복하다가 제법 나의 상황과 비슷한 사람의 글을 발견했다. 그래서 그런가 조금 읽힌다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;답글도 읽어보자.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;오? 마음에 드는 답글을 찾았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;바로 반영해본다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;실패했다. 좌절.&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;생각한다. 될 것 같았는데, 안됐다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;답글 다시 본다. 흠.. 내가 잘못 반영했다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다시 반영해서 쿼츠 실행 테스트.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;결과는??&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;성공 !!&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;한번만 돌았다.&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;제법 간단해 보이는 해결책이었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686239137029&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;Engine name=&quot;Catalina&quot; defaultHost=&quot;www.test.com&quot;&amp;gt;

  &amp;lt;Host name=&quot;www.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;www.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;

  &amp;lt;Host name=&quot;admin.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;admin.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;
  
&amp;lt;/Engine&amp;gt;


&amp;lt;!-- 아래로 수정 --&amp;gt;


&amp;lt;Engine name=&quot;Catalina&quot; defaultHost=&quot;www.test.com&quot;&amp;gt;

  &amp;lt;Host name=&quot;www.test.com&quot;  appBase=&quot;webapps\www.test.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot; &amp;gt;
    &amp;lt;Alias&amp;gt;admin.test.com&amp;lt;/Alias&amp;gt;
    &amp;lt;Valve className=&quot;org.apache.catalina.~~~~&quot; directory=&quot;logs&quot;
             prefix=&quot;www.test.log.&quot; suffix=&quot;.txt&quot;
             pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot; /&amp;gt;
  &amp;lt;/Host&amp;gt;
  
&amp;lt;/Engine&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;같은 appBase를 바라보고 있는 Host를 2개에서 1개로 줄였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하나를 Host name(server name)으로 설정하고 같은 appBase를 바라보아야 하는 다른 서버 네임을 Alias로 설정하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;의문을 갖었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;www~ 서버네임과 admin~서버네임을 구분해서 서비스를 관리해야 하는데 Host로 설정하지 않은 Alias가 서버네임으로 분기가 될까 싶었다. 그래서 또 열심히 찾아보았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다행히도 Alias로 설정한 server name은 Host의 추가 Host 개념이며 클라이언트가 접속하는 서버네임으로 구분이 되었다.&lt;/p&gt;
&lt;pre id=&quot;code_1686240007580&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;HttpServletRequest request

String serverName = request.getServerName();


// www.test.com 호출 

String serverName = request.getServerName();
// serverName = www.test.com


// admin.test.com 호출 

String serverName = request.getServerName();
// serverName = admin.test.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;request로 getServerName()을 얻어오면 클라이언트가 호출한 서버네임(Alias로 지정한 서버네임 포함)을&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;각각 잘 구분해서 조회할 수 있는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나의 경우에는 위와 같이 server.xml 파일을 수정해서 quartz 중복 실행 문제를 해결할 수 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;같은 appBase를 바라보던, 인스턴스가 2개이던 이전의 서비스를 Host 1개에 Alias를 추가해서 동일 appBase를 1개로 추리고나니&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;quartz는 다행히도 1번만 실행이 되었다고 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;혹시나 나와 비슷한 상황에서 위와 같이 처리를 했는데 quartz가 여러번 돈다면&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;servlet-context.xml 파일 trigger 선언부에 아래 코드를 추가 해주면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686240336259&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;bean class=&quot;org.springframework.scheduling.quartz.SchedulerFactoryBean&quot;&amp;gt;
    &amp;lt;property name=&quot;triggers&quot;&amp;gt;
        &amp;lt;list&amp;gt;
            &amp;lt;ref bean=&quot;testTrigger&quot;/&amp;gt;
        &amp;lt;/list&amp;gt;
    &amp;lt;/property&amp;gt;
    &amp;lt;property name=&quot;quartzProperties&quot;&amp;gt;
        &amp;lt;props&amp;gt;
            &amp;lt;!-- 다른 Quartz 속성들 --&amp;gt;
            &amp;lt;prop key=&quot;org.quartz.threadPool.threadCount&quot;&amp;gt;1&amp;lt;/prop&amp;gt;
        &amp;lt;/props&amp;gt;
    &amp;lt;/property&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;console을 확인해보면 bean#0 이던가 bean0#이던가&amp;nbsp; quartz 가 생성되고 quartz worker가&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;worker-1, worker-2, worker-3 ....... worker-10 까지 돌고 있을 수도 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;quartz 스레드는 기본적으로 10번 돌게 설정이 되어 있다고 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 기본 10번의 설정 값을 1번으로 설정해주면 trigger를 1번씩만 실행할 수 있게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 작업은 quartz가 중복 실행되는 현상을 해결하는 근본적인 해답이 아님을 참고해야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;열심히 정리를 하긴 했는데,. 잘 정리를 했는지.. 후..&amp;nbsp; &amp;nbsp;내일도 화이팅.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;[아래는 내가 문제를 해결한 참고 링크]&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&quot;&gt;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686240671275&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;How can I prevent Quartz multiple execution after tomcat restart&quot; data-og-description=&quot;Subject: Re: How can I prevent Quartz multiple execution after tomcatrestart &amp;lt;Host name=&amp;quot;locahost&amp;quot; ...&amp;gt; &amp;lt;Alias name=&amp;quot;somealias.company.com&amp;quot;&amp;gt; &amp;lt;/Host&amp;gt; and multiple requests comes in with a header Host: somealias.company.com then indeed the fact of having thi&quot; data-og-host=&quot;users.tomcat.apache.narkive.com&quot; data-og-source-url=&quot;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&quot; data-og-url=&quot;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://users.tomcat.apache.narkive.com/rlmH4Ngb/how-can-i-prevent-quartz-multiple-execution-after-tomcat-restart&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;How can I prevent Quartz multiple execution after tomcat restart&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Subject: Re: How can I prevent Quartz multiple execution after tomcatrestart &amp;lt;Host name=&quot;locahost&quot; ...&amp;gt; &amp;lt;Alias name=&quot;somealias.company.com&quot;&amp;gt; &amp;lt;/Host&amp;gt; and multiple requests comes in with a header Host: somealias.company.com then indeed the fact of having thi&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;users.tomcat.apache.narkive.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>alias</category>
      <category>bean</category>
      <category>host</category>
      <category>Host 2개</category>
      <category>quartz 중복 실행</category>
      <category>server.xml</category>
      <category>servlet-context</category>
      <category>동일 appBase</category>
      <category>인스턴스 중복</category>
      <category>쿼츠 중복 실행</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1015</guid>
      <comments>https://harrydony.tistory.com/1015#entry1015comment</comments>
      <pubDate>Fri, 9 Jun 2023 01:21:31 +0900</pubDate>
    </item>
    <item>
      <title>[react native] color (컬러) 찾기 좋은 사이트 참조</title>
      <link>https://harrydony.tistory.com/1014</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;앱 만들기 공부를 시작하면서 알게된 사이트인데 색상이 괜찮게 커스텀 된 것 같아 포스팅 해두려 한다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[참고 링크]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://m3.material.io/theme-builder#/custom&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://m3.material.io/theme-builder#/custom&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685980642545&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Material Design&quot; data-og-description=&quot;Build beautiful, usable products faster. Material Design is an adaptable system&amp;mdash;backed by open-source code&amp;mdash;that helps teams build high quality digital experiences.&quot; data-og-host=&quot;m3.material.io&quot; data-og-source-url=&quot;https://m3.material.io/theme-builder#/custom&quot; data-og-url=&quot;https://m3.material.io&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJESPp/hySRTgwuFX/hx5AqQpc1FTUOoKgDmR0X0/img.jpg?width=1024&amp;amp;height=535&amp;amp;face=0_0_1024_535&quot;&gt;&lt;a href=&quot;https://m3.material.io/theme-builder#/custom&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m3.material.io/theme-builder#/custom&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJESPp/hySRTgwuFX/hx5AqQpc1FTUOoKgDmR0X0/img.jpg?width=1024&amp;amp;height=535&amp;amp;face=0_0_1024_535');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Material Design&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Build beautiful, usable products faster. Material Design is an adaptable system&amp;mdash;backed by open-source code&amp;mdash;that helps teams build high quality digital experiences.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;m3.material.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1014</guid>
      <comments>https://harrydony.tistory.com/1014#entry1014comment</comments>
      <pubDate>Tue, 6 Jun 2023 00:58:16 +0900</pubDate>
    </item>
    <item>
      <title>[ react native ] useState Hook으로 상태 관리하는 방법</title>
      <link>https://harrydony.tistory.com/1013</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리액트에서 상태를 관리하는 가장 기본적인 방법으로 useState라는 함수를 사용하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리액트에는 use로 시작하는 다양한 함수가 내장되어 있는데 이 함수들을 Hook이라고 부른다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Hook을 사용하여 상태 관리, 최적화, 컴포넌트 작동 흐름 관리 등 다양한 기능을 구현할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 중에서 useState는 상태 값을 관리하는 함수이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;const App = () =&amp;gt; {
  const [count, setCount] = useState(0);
  const onIncrease = () =&amp;gt; setCount(count + 1);
  const onDecrease = () =&amp;gt; setCount(count - 1);
  return (
    &amp;lt;SafeAreaView style={style.full}&amp;gt;
      &amp;lt;Counter count={count} onIncrease={onIncrease} onDecrease={onDecrease} /&amp;gt;
    &amp;lt;/SafeAreaView&amp;gt;
  );
};&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;useState 함수는 위 예시처럼 다음과 같이 사용한다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;  const [count, setCount] = useState(0);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 count 는 상태 값을 가리키며, setCount는 상태 값을 변경할 수 있는 함수를 의미한다.&lt;br /&gt;setCount의 상태 값을 변경할 수 있는 함수명은 상황에 맞게 정해서 사용하면 된다.&lt;br /&gt;상태 값을 의미하는 count 변수명도 수정 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;useState(0) 함수에 넣어준 파라미터 0의 값은 상태 값의 초깃값을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;결국 useState가 호출되면 두 가지 원소가 들어있는 배열을 반환하는데,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 배열에는 첫 번째 원소에 상태 값, 두 번째 원소에 상태를 업데이트 하는 함수가 들어있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;useState를 사용해서 Boolean, 숫자, 객체, 배열 등의 형태를 가진 상태를 관리할 수도 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;function Counter({count, onIncrease, onDecrease}) {
  return (
    &amp;lt;View style={styles.wrapper}&amp;gt;
      &amp;lt;View style={styles.numberArea}&amp;gt;
        &amp;lt;Text style={styles.number}&amp;gt;{count}&amp;lt;/Text&amp;gt;
      &amp;lt;/View&amp;gt;
      &amp;lt;Button title=&quot;+1&quot; onPress={onIncrease} /&amp;gt;
      &amp;lt;Button title=&quot;-1&quot; onPress={onDecrease} /&amp;gt;
    &amp;lt;/View&amp;gt;
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Counter 컴포넌트는 버튼 2개를 가지고 있으며 App컴포넌트에서 렌더링하고 있다.&lt;br /&gt;App컴포넌트에서 Counter 컴포넌트의 각 버튼을 누를 때 useState 함수를 호출해서 숫자를 + 또는 - 해서 Counter 컴포넌트의 count로 그려주고&lt;br /&gt;업데이트 된 Counter 컴포넌틀를 App컴포넌트에서 다시 렌더링 해주는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;코드를 모아서 다시 정리해보면 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1685976815708&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const App = () =&amp;gt; {
  const [count, setCount] = useState(0);
  const onIncrease = () =&amp;gt; setCount(count + 1);
  const onDecrease = () =&amp;gt; setCount(count - 1);
  return (
    &amp;lt;SafeAreaView style={style.full}&amp;gt;
      &amp;lt;Counter count={count} onIncrease={onIncrease} onDecrease={onDecrease} /&amp;gt;
    &amp;lt;/SafeAreaView&amp;gt;
  );
};&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1685976825990&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function Counter({count, onIncrease, onDecrease}) {
  return (
    &amp;lt;View style={styles.wrapper}&amp;gt;
      &amp;lt;View style={styles.numberArea}&amp;gt;
        &amp;lt;Text style={styles.number}&amp;gt;{count}&amp;lt;/Text&amp;gt;
      &amp;lt;/View&amp;gt;
      &amp;lt;Button title=&quot;+1&quot; onPress={onIncrease} /&amp;gt;
      &amp;lt;Button title=&quot;-1&quot; onPress={onDecrease} /&amp;gt;
    &amp;lt;/View&amp;gt;
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 초깃값을 true로 설정한 useState의 값을 setVisible 상태 변경 함수를 호출하여&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;값의 반전을 줄 수 있는 방법으로 추후 본격적으로 프로젝트를 만들 때 유용할 것 같아 참고차 포스팅 해놓는다.&lt;/p&gt;
&lt;pre id=&quot;code_1685976967804&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const App = () =&amp;gt; {
  const [visible, setVisible] = useState(true);
  const onPress = () =&amp;gt; {
    setVisible(!visible);
  };

  return (
    &amp;lt;SafeAreaView&amp;gt;
      &amp;lt;Button title=&quot;토글&quot; onPress={onPress} /&amp;gt;
      {visible &amp;amp;&amp;amp; &amp;lt;Box rounded={true} size=&quot;large&quot; color=&quot;green&quot; /&amp;gt;}
    &amp;lt;/SafeAreaView&amp;gt;
  );
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같이 해주면 조건 상관 없이 처음 설정한 초깃값의 반대로 값을 세팅할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1685977062092&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    setVisible(!visible);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>react native</category>
      <category>react native useState</category>
      <category>useState</category>
      <category>리액트 네이티브</category>
      <category>리액트 네이티브 상태 관리</category>
      <category>리액트 네이티브 상태 관리 기초</category>
      <category>상태 관리</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1013</guid>
      <comments>https://harrydony.tistory.com/1013#entry1013comment</comments>
      <pubDate>Mon, 5 Jun 2023 23:54:30 +0900</pubDate>
    </item>
    <item>
      <title>[react native] 객체 구조 분해 할당이란?</title>
      <link>https://harrydony.tistory.com/1012</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;컴포넌트에서 Props를 조회하는 코드를 더 짧게 구현하는 방법이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;구조 분해 할당이라는 자바스크립트 문법을 사용하는 방법으로, '비구조화 할당' 이라고 부르기도 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 문법은 객체 안에 있는 값을 더욱 짧은 코드를 사용해 밖으로 추출할 수 있게 해준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;객체를 참조해서 콘솔로 찍어보면 아래와 같이 사용된다.&lt;/p&gt;
&lt;pre class=&quot;fortran&quot;&gt;&lt;code&gt;function print(params) {
    console.log(params.name);
    console.log(params.descr);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;구조 분해 할당을 사용한다면 아래와 같이 사용할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;fortran&quot;&gt;&lt;code&gt;function print({name, descr}) {
    console.log(name);
    console.log(descr);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;이렇게 사용하면 매번 객체를 참조하지 않고 코드를 간결하게 사용할 수 있다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;아래는 리액트 네이티브로 작성한 '구조 분해 할당' 예시 코드이다.&lt;/h2&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;import React from 'react';
import {View, Text, StyleSheet} from 'react-native';

function Name({name, age}) {
  return (
    &amp;lt;View style={[styles.setLocation]}&amp;gt;
      &amp;lt;Text style={styles.setText}&amp;gt;안녕하세요.&amp;lt;/Text&amp;gt;
      &amp;lt;Text style={styles.setText}&amp;gt;저는 {name}입니다.&amp;lt;/Text&amp;gt;
      &amp;lt;Text style={styles.setText}&amp;gt;{age}살 입니다.&amp;lt;/Text&amp;gt;
    &amp;lt;/View&amp;gt;
  );
}

const styles = StyleSheet.create({
  setLocation: {
    justifyContent: 'center',
    flex: 1,
    fontSize: 60,
  },
  setText: {
    textAlign: 'center',
    fontSize: 40,
  },
});

Name.defaultProps = {
  name: '홍길동',
  age: '20',
};

export default Name;
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>IT 유용한 정보</category>
      <category>react native 구조 분해 할당</category>
      <category>객체 구조 분해 할당</category>
      <category>구조 분해 할당</category>
      <category>리액트 네이티브 구조 분해 할당</category>
      <category>리액트 네이티브 구조분해할당</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1012</guid>
      <comments>https://harrydony.tistory.com/1012#entry1012comment</comments>
      <pubDate>Mon, 5 Jun 2023 23:39:37 +0900</pubDate>
    </item>
    <item>
      <title>[react native] 리액트 네이티브 공부를 막 시작할 때 참고하면 좋은 정보 공유드립니다.</title>
      <link>https://harrydony.tistory.com/1011</link>
      <description>&lt;h1 style=&quot;text-align: center;&quot;&gt;React Native 기초&lt;/h1&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;1. 리액트 컴포넌트를 만들 때는 아래 코드를 꼭 입력해야 한다.&lt;/h3&gt;
&lt;pre class=&quot;clean&quot;&gt;&lt;code&gt;import React from 'react';&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;2. 컴포넌트를 선언하는 방법 2가지&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;함수 선언 : function&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;클래스 선언
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스는 2018년 전에 주로 사용하던 방법으로 지금은 잘 사용하지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;3. function, 화살표 함수 선언&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기능적으로 차이는 없다.&lt;/li&gt;
&lt;li&gt;화살표 함수의 경우, 간단하게 반환할 때 사용되며 중괄호/return 을 생략할 수 있다.&lt;/li&gt;
&lt;li&gt;그치만 페이스북에서도 화살표 함수가 아닌 function 함수를 선언해서 리액트 네이티브를 개발한다고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;4. JSX에서 자바스크립트 표현식을 보여줘야 할 때는 중괄호로 감싸서 작성해야 한다.&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자바스크립트 표현식 : 연산 결과, 함수 호출, 특정 변수 또는 상수&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;5. defaultProps 사용 익히기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리액트 컴포넌트에서 사용되는 정적 멤버 변수(static member variable)로서, 컴포넌트의 기본 속성 값을 정의하는 데 사용됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;6. 반환할 때는 꼭 하나의 태그로 감싸기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;View태그를 남용하면 나중에 레이아웃 관련 작업이 귀찮아질 수 있으므로 JSX Fragment(빈 태그)를 사용하면 좋다.&amp;nbsp;&lt;/li&gt;
&lt;li class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;&amp;gt;
&amp;lt;View&amp;gt;&amp;lt;Text&amp;gt;컴포넌트&amp;lt;/Text&amp;gt;&amp;lt;/View&amp;gt;
&amp;lt;Text&amp;gt;텍스트입니다!!&amp;lt;/Text&amp;gt;
&amp;lt;/&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;7. StyleSheet 컴포넌트에 스타일 입히기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;css 속성값들 확인&lt;br /&gt;&lt;a href=&quot;https://www.w3schools.com/css/default.asp&quot;&gt;https://www.w3schools.com/css/default.asp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;react-native 모듈에서 불러와서 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;css와 주요 차이점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;셀렉터라는 개념이 존재하지 않는다.&lt;/li&gt;
&lt;li&gt;모든 스타일 속성은 camelCase로 작성해야 한다.&lt;/li&gt;
&lt;li&gt;display 속성은 기본적으로 flex이며, 다른 값은 none 밖에 없다.&lt;/li&gt;
&lt;li&gt;flexDirection 속성의 기본값은 웹에서는 row이지만 react native에서는 column이다.&lt;/li&gt;
&lt;li&gt;리액트 네이티브에서 스타일링할 때 숫자 단위는 dp뿐이다.&lt;/li&gt;
&lt;li&gt;background 대신 backgroundColor를 사용해야 한다.&lt;/li&gt;
&lt;li&gt;border 대신 borderWidth, borderStyle, borderColor 등을 따로따로 설정해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;스타일들을 const 객체에 담아 props로 전달 받는 값에 따라 다른 스타일을 보여줄 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;8. Props 객체 구조 분해 할당&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;컴포넌트에서 Props를 조회하는 코드를 더 짧게 구현하는 방법이다.&lt;br /&gt;구조 분해 할당이라는 자바스크립트 문법을 사용하는 방법으로, '비구조화 할당' 이라고 부르기도 한다.&lt;br /&gt;이 문법은 객체 안에 있는 값을 더욱 짧은 코드를 사용해 밖으로 추출할 수 있게 해준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/1012&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.06.05 - [IT 유용한 정보] - [react native] 객체 구조 분해 할당이란?&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685976076239&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[react native] 객체 구조 분해 할당이란?&quot; data-og-description=&quot;컴포넌트에서 Props를 조회하는 코드를 더 짧게 구현하는 방법이다. 구조 분해 할당이라는 자바스크립트 문법을 사용하는 방법으로, '비구조화 할당' 이라고 부르기도 한다. 이 문법은 객체 안에 &quot; data-og-host=&quot;harrydony.tistory.com&quot; data-og-source-url=&quot;https://harrydony.tistory.com/1012&quot; data-og-url=&quot;https://harrydony.tistory.com/1012&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXuuve/hySTHS13EK/ni2kTW64uzkPUVeyamJJ3K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bWAPAz/hySRSu71CA/9R0KKy8KXvo8wkvrJ51Qo1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/i09Rw/hySTSAgOfy/8TIwbTAAychP3kk4xXmT3k/img.jpg?width=1440&amp;amp;height=1440&amp;amp;face=0_0_1440_1440&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/1012&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://harrydony.tistory.com/1012&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXuuve/hySTHS13EK/ni2kTW64uzkPUVeyamJJ3K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bWAPAz/hySRSu71CA/9R0KKy8KXvo8wkvrJ51Qo1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/i09Rw/hySTSAgOfy/8TIwbTAAychP3kk4xXmT3k/img.jpg?width=1440&amp;amp;height=1440&amp;amp;face=0_0_1440_1440');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[react native] 객체 구조 분해 할당이란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;컴포넌트에서 Props를 조회하는 코드를 더 짧게 구현하는 방법이다. 구조 분해 할당이라는 자바스크립트 문법을 사용하는 방법으로, '비구조화 할당' 이라고 부르기도 한다. 이 문법은 객체 안에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;harrydony.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;9. useState Hook으로 상태 관리하기&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리액트에서 상태를 관리하는 가장 기본적인 방법으로 useState라는 함수를 사용하는 것이다.&lt;br /&gt;리액트에는 use로 시작하는 다양한 함수가 내장되어 있는데 이 함수들을 Hook이라고 부른다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hook을 사용하여 상태 관리, 최적화, 컴포넌트 작동 흐름 관리 등 다양한 기능을 구현할 수 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 중에서 useState는 상태 값을 관리하는 함수이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위 내용을 토대로 하나씩 찾아보며 공부를 하면 좋을 것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>react native 기초</category>
      <category>리액트 네이티브 기초</category>
      <category>리액트 네이티브 입문</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1011</guid>
      <comments>https://harrydony.tistory.com/1011#entry1011comment</comments>
      <pubDate>Mon, 5 Jun 2023 23:32:26 +0900</pubDate>
    </item>
    <item>
      <title>[github] 깃허브 사이트에서 보안 취약 알림 해결하는 방법</title>
      <link>https://harrydony.tistory.com/1010</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;앱을 만들고 싶어서 react native 공부를 시작하려고 리액트 네이티브 프로젝트를 git에 push 했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;알람 올 일이 없는데 알람이 보여서 확인해보니 보안이 취약하다고 친절히 안내해주는 알림이었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1038&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q9Exg/btsiOJFNlfD/8dbDwN23oLrYlmNVsmAQXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q9Exg/btsiOJFNlfD/8dbDwN23oLrYlmNVsmAQXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q9Exg/btsiOJFNlfD/8dbDwN23oLrYlmNVsmAQXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq9Exg%2FbtsiOJFNlfD%2F8dbDwN23oLrYlmNVsmAQXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1038&quot; height=&quot;56&quot; data-origin-width=&quot;1038&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리엑트 네이티브 프로젝트가 존재하는 폴더에서 터미널을 열고 아래 명령어를 입력하여 해결할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트의 취약한 부분을 조회할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;elixir&quot;&gt;&lt;code&gt;$ yarn audit &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRysa3/btsiNaYjAqU/gdGfjxS2uidSiaDwg1KBT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRysa3/btsiNaYjAqU/gdGfjxS2uidSiaDwg1KBT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRysa3/btsiNaYjAqU/gdGfjxS2uidSiaDwg1KBT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRysa3%2FbtsiNaYjAqU%2FgdGfjxS2uidSiaDwg1KBT1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;81&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;0개의 취약한 부분을 발견했다고 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;업데이트 해줄 게 없는건가,, 흠...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;빈 프로젝트여서 보안에 취약하다고 친절히 알려준걸까..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;만약 취약한 부분을 업데이트 해야 하는데 업데이트가 되지 않는다면&lt;br /&gt;강제로 해줄 수 있다고도 한다.&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;npm audit fix --force&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>audit</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1010</guid>
      <comments>https://harrydony.tistory.com/1010#entry1010comment</comments>
      <pubDate>Mon, 5 Jun 2023 16:21:00 +0900</pubDate>
    </item>
    <item>
      <title>[react native] 생성된 프로젝트의 파일 설명</title>
      <link>https://harrydony.tistory.com/1009</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;index.js&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트의 엔트리 파일로, 생성한 리액트 네이티브 앱은 이 파일에서 시작한다.&lt;br /&gt;여기서 import 구문을 통해 코드들을 불러와 앱을 &lt;b&gt;&lt;i&gt;번들링&lt;/i&gt;&lt;/b&gt;한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@format : 코드 스타일을 자동으로 정리해주는 Prettier라는 도구와 관련이 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;typescript&quot;&gt;&lt;code&gt;/**
 * @format
 */

import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';

AppRegistry.registerComponent(appName, () =&amp;gt; App);
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;간단한 설명일지라도 가장 중요한 부분이 아닐까 싶다.&lt;br /&gt;App이라는 컴포넌트를 불러와서 AppRegistry.registerComponent라는 함수를 사용해 네이티브 시스템에 해당 컴포넌트를 등록한다.&lt;br /&gt;이 작업을 해줘야 네이티브 시스템에서 내가 만든 리액트 네이티브 컴포넌트를 화면에 보여줄 수 있다.&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>App 컴포넌트란?</category>
      <category>index.js</category>
      <category>리액트 네이티브 시작</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1009</guid>
      <comments>https://harrydony.tistory.com/1009#entry1009comment</comments>
      <pubDate>Mon, 5 Jun 2023 13:59:28 +0900</pubDate>
    </item>
    <item>
      <title>[react native] 프로젝트 만드는 방법</title>
      <link>https://harrydony.tistory.com/1008</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리엑트 네이티브 프로젝트 생성&lt;/p&gt;
&lt;pre class=&quot;kotlin&quot;&gt;&lt;code&gt;$ npx react-native init projectName&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;npx란?&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Node.js와 함께 설치되는 도구로, Node.js 환경에서 구동되는 CLI 도구들을 간단하게 사용할 수 있게 해준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;package.json&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LYCaX/btsiyVN7Cf6/jFKDYjAa5H4d08kOkBVS7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LYCaX/btsiyVN7Cf6/jFKDYjAa5H4d08kOkBVS7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LYCaX/btsiyVN7Cf6/jFKDYjAa5H4d08kOkBVS7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLYCaX%2FbtsiyVN7Cf6%2FjFKDYjAa5H4d08kOkBVS7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;292&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;package.json 파일을 열어보면 위와 같이 scripts가 설정된 것을 확인할 수 있다.&lt;br /&gt;이렇게 스크립트가 설정되면 yarn을 통해 아래와 같이 원하는 명령어를 실행할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;$ yarn &amp;lt;스트립트 이름&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;스트립트 종류&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;android : 안드로이드 환경에서 앱을 구동하는 스크립트&lt;/li&gt;
&lt;li&gt;ios : iOS환경에서 앱을 구동하는 스크립트&lt;/li&gt;
&lt;li&gt;start : Metro를 구동하는 스크립트&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;Metro란?&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;리액트 네이티브를 위한 자바스크립트 번들러로, 프로젝트에 사용된 자바스크립트 파일들을 모두 읽어서&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;올바른 순서로 하나의 파일로 합쳐주고 네이티브 앱에서 실행할 준비를 해준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;android나 ios 스크립트를 사용하면 새로운 터미널에서 start스크립트가&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자동으로 시작되기 때문에 start스크립트를 직접 입력해 실행하는 일은 드물다.&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;프로젝트 실행&lt;/h3&gt;
&lt;pre class=&quot;elixir&quot;&gt;&lt;code&gt;$ yarn ios&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TQRIT/btsiOiBcpzY/UN1eODTRMnlF15N3RuN0H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TQRIT/btsiOiBcpzY/UN1eODTRMnlF15N3RuN0H1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TQRIT/btsiOiBcpzY/UN1eODTRMnlF15N3RuN0H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTQRIT%2FbtsiOiBcpzY%2FUN1eODTRMnlF15N3RuN0H1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;524&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;선행 작업&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node.js 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Node.js 란?&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;웹 브라우저가 아닌 환경에서도 자바스크립트를 실행할 수 있게 해주는 Chrome V8 Javascript 엔진으로 빌드된 런타임이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;npm 설치(Node.js 설치하면 함께 설치된다)&lt;/li&gt;
&lt;li&gt;Java 설치&lt;/li&gt;
&lt;li&gt;Yarn 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Yarn은 npm과 같은 패키지 관리 도구이다. npm과 역할이 동일하지만 성능이 개선되어서 npm보다 패키지를 더 빨리 설치한다.yarn도 리액트/리액트 네이티브와 같이 페시트북에서 만든 도구이다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Watchman 설치 (필수X)&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IT 유용한 정보</category>
      <category>node.js란?</category>
      <category>npx란?</category>
      <category>React-native</category>
      <category>react-native 초기화</category>
      <category>yarn이란?</category>
      <category>리액트 네이티브</category>
      <category>앱 만들려면</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1008</guid>
      <comments>https://harrydony.tistory.com/1008#entry1008comment</comments>
      <pubDate>Mon, 5 Jun 2023 13:43:30 +0900</pubDate>
    </item>
    <item>
      <title>javascript로 form을 제출하는 방법은?</title>
      <link>https://harrydony.tistory.com/1007</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같이 사용하면 html에 그리지 못한 form을 자바스크립트로 직접 만들어서 서버단으로 데이터를 전송할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685568131569&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let form = document.createElement('form');
form.action = '/test/test2/test3';
form.method = 'POST';

let el = '&amp;lt;input name=&quot;paymentType&quot; value=&quot;' + paymentType + '&quot; type=&quot;hidden&quot; &amp;gt;';
el += '&amp;lt;input name=&quot;orderId&quot; value=&quot;' + orderId + '&quot; type=&quot;hidden&quot;&amp;gt;'; 
el += '&amp;lt;input name=&quot;paymentKey&quot; value=&quot;' + paymentKey + '&quot; type=&quot;hidden&quot;&amp;gt;'; 
el += '&amp;lt;input name=&quot;amount&quot; value=&quot;' + amount + '&quot; type=&quot;hidden&quot;&amp;gt;'; 

form.innerHTML = el; 

// 폼을 제출하려면 반드시 폼이 문서 안에 있어야 한다.
document.body.append(form);

form.submit();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;html 태그에 form을 그리고 또&amp;nbsp; 요소들을 찾아서 javascript로 값을 할당하고 다시 submit하는 과정이 번거로웠고&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;왜 때문인지 백엔드로 POST 방식 데이터를 전송해야 하는데 다른 페이지로 렌더링 되는 것이 아닌가.,&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;회사 플랫폼이 form을 즐겨 사용하지 않고 ajax를 주로 사용하고 있어서 그런것 같지만서도,&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래도 어찌됐든 또 방법을 찾았고 백엔드로&amp;nbsp; 데이터를 넘겨서 활용한 후에 내가 원하는 페이지로 잘 갔으니 안심!&amp;nbsp;&amp;nbsp;&lt;/p&gt;</description>
      <category>javascript</category>
      <category>form submit</category>
      <category>javascript form</category>
      <category>js form submit</category>
      <category>Submit</category>
      <category>자바스크립트 form</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1007</guid>
      <comments>https://harrydony.tistory.com/1007#entry1007comment</comments>
      <pubDate>Thu, 1 Jun 2023 06:27:59 +0900</pubDate>
    </item>
    <item>
      <title>javascript에서 현재 URL의 원하는 파라미터 값 추출하는 방법</title>
      <link>https://harrydony.tistory.com/1006</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;현재 페이지 URL에서 원하는 파라미터 값을 추출 하는 방법 공유드립니다!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;테스트는 아래 네이버 기사 링크타고 들어가서 개발자 도구 콘솔에서 타이핑 해보았습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://n.news.naver.com/article/005/0001612676?cds=news_media_pc&amp;amp;type=editn &quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://n.news.naver.com/article/005/0001612676?cds=news_media_pc&amp;amp;type=editn&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685567468815&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;&amp;ldquo;세안제 위장 염산 나눠준다고?&amp;rdquo;&amp;hellip;알고보니 &amp;lsquo;흑설탕물&amp;rsquo;&quot; data-og-description=&quot;31일 소셜미디어와 지역 커뮤니티 등을 중심으로 경기 의정부, 양주 지역에 &amp;ldquo;누군가 세안제를 가장한 &amp;lsquo;염산&amp;rsquo;을 아이들에게 나눠주고 있다&amp;rdquo;는 경고글이 퍼지며 일대 주민들을 긴장시켰다. &quot; data-og-host=&quot;n.news.naver.com&quot; data-og-source-url=&quot;https://n.news.naver.com/article/005/0001612676?cds=news_media_pc&amp;amp;type=editn &quot; data-og-url=&quot;https://n.news.naver.com/article/005/0001612676&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ciI487/hySPnaxmGT/LTjheZ0AW9nOHinZ7Rchn0/img.jpg?width=640&amp;amp;height=456&amp;amp;face=0_0_640_456,https://scrap.kakaocdn.net/dn/9NmQp/hySQDQmhc8/8hTxqHa2EJDUfBw31CTwmk/img.jpg?width=640&amp;amp;height=456&amp;amp;face=0_0_640_456&quot;&gt;&lt;a href=&quot;https://n.news.naver.com/article/005/0001612676?cds=news_media_pc&amp;amp;type=editn%20&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://n.news.naver.com/article/005/0001612676?cds=news_media_pc&amp;amp;type=editn &quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ciI487/hySPnaxmGT/LTjheZ0AW9nOHinZ7Rchn0/img.jpg?width=640&amp;amp;height=456&amp;amp;face=0_0_640_456,https://scrap.kakaocdn.net/dn/9NmQp/hySQDQmhc8/8hTxqHa2EJDUfBw31CTwmk/img.jpg?width=640&amp;amp;height=456&amp;amp;face=0_0_640_456');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;세안제 위장 염산 나눠준다고?&amp;rdquo;&amp;hellip;알고보니 &amp;lsquo;흑설탕물&amp;rsquo;&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;31일 소셜미디어와 지역 커뮤니티 등을 중심으로 경기 의정부, 양주 지역에 &amp;ldquo;누군가 세안제를 가장한 &amp;lsquo;염산&amp;rsquo;을 아이들에게 나눠주고 있다&amp;rdquo;는 경고글이 퍼지며 일대 주민들을 긴장시켰다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;n.news.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;?cds=news_media_pc&amp;amp;type=editn&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;네이버 기사 URL 파라미터들입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;cds와 type 파라미터 값을 제대로 출력하는지 확인해 보았어요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685567334137&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const urlParams = new URL(location.href).searchParams;
let cds = urlParams.get(&quot;cds&quot;); 
let type = urlParams.get(&quot;type&quot;); 

console.log(cds);  // news_media_pc
console.log(type); // editn&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;사실 다른 방법으로 사용하려 했지만 왜인지 조금 미흡하게 느껴지는 부분이 있어서&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다시 찾게 된 방법인데 아주 괜찮은 방법인 것 같아서&amp;nbsp; 이렇게 정리 해두고&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;추후 저도 참고 하고 다른 분들께도 도움 드리고자 합니다 :)&amp;nbsp;&lt;/p&gt;</description>
      <category>javascript</category>
      <category>domain</category>
      <category>host</category>
      <category>javascript url</category>
      <category>port</category>
      <category>searchParams</category>
      <category>url parameter</category>
      <category>URL 파라미터</category>
      <category>자바스크립트 URL</category>
      <category>현재 URL</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1006</guid>
      <comments>https://harrydony.tistory.com/1006#entry1006comment</comments>
      <pubDate>Thu, 1 Jun 2023 06:18:01 +0900</pubDate>
    </item>
    <item>
      <title>javascript에서  var, let, const 차이점을 알고 사용해보자.</title>
      <link>https://harrydony.tistory.com/1005</link>
      <description>&lt;p class=&quot;codepen&quot; style=&quot;height: 301.544921875px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;&quot; data-height=&quot;301.544921875&quot; data-default-tab=&quot;js,result&quot; data-slug-hash=&quot;vYVqpmM&quot; data-user=&quot;khr777&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;See the Pen &lt;a href=&quot;https://codepen.io/khr777/pen/vYVqpmM&quot;&gt; Untitled&lt;/a&gt; by hyeryeonkim (&lt;a href=&quot;https://codepen.io/khr777&quot;&gt;@khr777&lt;/a&gt;) on &lt;a href=&quot;https://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;script src=&quot;https://cpwebassets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;var 변수 선언은 전역 변수 또는 함수 내에서 사용하기 위해 선언하죠.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;let과 const 변수가 나오기 전에는 모두 var 변수를 사용했는데 var 변수가 갖는 문제가 많다보니&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;let과 const를 접한 이후로는 자연스럽게 let과 const를 사용하게 되더라구요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;var변수는 재선언이 가능하며 값도 다시 설정할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;물론 여기에서 발생하는 문제가 흔히 알고 있는 var의 문제점이죠.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685565870750&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
var mung = 3; 
mung = 4; 

console.log(mung); 

function method_1() {
  mung = '사람'; 
  console.log(mung); //사람 
  var mung = '강아지'; 
  console.log(mung); //강아지 
}

method_1();&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;mung이라는 변수명으로 var 변수에 3을 초기화 하고 바로 4를 할당합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 콘솔을 찍으면 4가 나오겠죠.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;method_1() 이라는 함수를 만들어서 전역 변수인 mung에 '사람'을 할당하고 출력 해본 후에 mung을 var 변수로 재선언해도 오류 없이 동작되며 재선언한 '강아지'값이 출력되는 것을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다음으로 let 변수를 살펴볼게요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685566064259&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let hoho; 
console.log(hoho); 

function method_2() {
  hoho = '호호'; 
  console.log(hoho); 
  // let hoho = '잉 재선언 불가'; 
  //console.log(hoho); 
  let a = 30; 
  let b = 80; 
  let total = a + b;
  console.log(total); 
}

method_2();&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;굉장히 간단해 보이는 코드이지만 let 변수의 경우 전역 범위에서&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이미 선언한 변수를 함수 내에서 재선언 할 수 없기 때문에 오류가 발생합니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;let도 전역 범위에서 사용할 수 있기 때문에 상황에 따라서 적절하게 사용한다면&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나도 모르게 중복되는 변수를 만들고 의도치 않은 값들을 가지고 있는 변수를 확인한다면 굉장히 당혹스럽겠죠.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685566500913&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const con = '변경할 수 없는'; 
console.log(con);  // 변경할 수 없는

// con = '변경 할 수 없군, 오류 발생'; error  

const obj = {
  a:1,
  b:2
}


console.log(obj)  // obj
console.log(obj.a) // 1 
console.log(obj.a + obj.b)  // 2 

const obj_v2 = {}; 
obj_v2.name = 'mangaji'; 
obj_v2.age = '10'; 

console.log(obj_v2);  // obj_v2

obj_v2.name = 'mangaji___2'; 
console.log(obj_v2.name)  //&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로 const 변수 입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;const는 값을 변경하지 않는 상수를 초기화 한다고 생각하시면 되세요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;보통 const에는 일반적인 값들 보다는 변경되면 안되는 값이나 객체를 할당해서 사용하죠.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;객체를 초기화(선언)하는 방법은 위와 같이 2가지가 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;const의 값을 직접적으로 변경할 수는 없지만 const에 주입한 객체의 속성 값은 수정되는 것을 확인해보았으니&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;테스트 해보시며 var, let, const의 차이를 익히시고 적절한 상황에 이용하시면 좋을 것 같네요!&amp;nbsp;&lt;/p&gt;</description>
      <category>javascript</category>
      <category>const 사용법</category>
      <category>JavaScript</category>
      <category>javascript 변수 초기화</category>
      <category>javascript 변수 할당</category>
      <category>let 사용법</category>
      <category>var let const</category>
      <category>var 사용법</category>
      <category>자바스크립트 변수</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1005</guid>
      <comments>https://harrydony.tistory.com/1005#entry1005comment</comments>
      <pubDate>Thu, 1 Jun 2023 05:35:55 +0900</pubDate>
    </item>
    <item>
      <title>Android, 패키지 명으로 외부 앱이 실행되지 않을 때, pname:com ~, 최신 기종에서 카드결제가 되지 않을 때</title>
      <link>https://harrydony.tistory.com/1004</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;최근에 회사에서 운영하는 플랫폼 앱이 안드로이드 최신 기종에서 다운로드 되지 않는 문제가 발생했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 targetSdkVersion을 31로 업데이트해서 다시 배포한 적이 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/992&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.05.11 - [IT 유용한 정보 모음/IT 유용한 정보] - [Android] How to import a project that another person was working on into Android Studio / 안드로이드 스튜디오로 다른 사람이 작업하던 프로젝트 import하는 방법&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685071943754&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Android] How to import a project that another person was working on into Android Studio / 안드로이드 스튜디오로 다&quot; data-og-description=&quot;회사에서 운영하는 플렛폼은 웹서비스로 제공하고 있고 안드로이드 어플로도 서비스를 제공하고 있다. The platform operated by the company is provided as a web service and also available as an Android application. 운영&quot; data-og-host=&quot;harrydony.tistory.com&quot; data-og-source-url=&quot;https://harrydony.tistory.com/992&quot; data-og-url=&quot;https://harrydony.tistory.com/992&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dHS2m9/hySKIzjHbd/8ydpSIsQ3sKU1zPzBxNRqK/img.png?width=440&amp;amp;height=986&amp;amp;face=0_0_440_986,https://scrap.kakaocdn.net/dn/bOElac/hySLBk2bse/2ChfTLPQxUkG7k220nXVh0/img.png?width=440&amp;amp;height=986&amp;amp;face=0_0_440_986,https://scrap.kakaocdn.net/dn/i9TOE/hySLDJUTZT/aX6opL7yInufXoyRS0i8EK/img.png?width=1338&amp;amp;height=528&amp;amp;face=0_0_1338_528&quot;&gt;&lt;a href=&quot;https://harrydony.tistory.com/992&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://harrydony.tistory.com/992&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dHS2m9/hySKIzjHbd/8ydpSIsQ3sKU1zPzBxNRqK/img.png?width=440&amp;amp;height=986&amp;amp;face=0_0_440_986,https://scrap.kakaocdn.net/dn/bOElac/hySLBk2bse/2ChfTLPQxUkG7k220nXVh0/img.png?width=440&amp;amp;height=986&amp;amp;face=0_0_440_986,https://scrap.kakaocdn.net/dn/i9TOE/hySLDJUTZT/aX6opL7yInufXoyRS0i8EK/img.png?width=1338&amp;amp;height=528&amp;amp;face=0_0_1338_528');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Android] How to import a project that another person was working on into Android Studio / 안드로이드 스튜디오로 다&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;회사에서 운영하는 플렛폼은 웹서비스로 제공하고 있고 안드로이드 어플로도 서비스를 제공하고 있다. The platform operated by the company is provided as a web service and also available as an Android application. 운영&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;harrydony.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 때부터일까,, 앱에서 카드 결제가 되지 않는다는 문의가 속출했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLBlg0/btsht2zXShV/2rvBKh2gukGhHcY1BnOty1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLBlg0/btsht2zXShV/2rvBKh2gukGhHcY1BnOty1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLBlg0/btsht2zXShV/2rvBKh2gukGhHcY1BnOty1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLBlg0%2Fbtsht2zXShV%2F2rvBKh2gukGhHcY1BnOty1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;379&quot; height=&quot;511&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;카드 결제를 시도하면 카드사 앱으로 넘어 갔다가 설치가 되어 있는데도 불구하고 카드사 앱이 열리지 않아 결제를 완료하지 못하는 문제가&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;계속 발생하고 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;개발자이지만 안일하게도 앱을 업데이트 하지 않았거나 단순 기종 문제일 것이라고 판단했던 나는 며칠을 두고 보고 있었다,,&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그러나 문의가 계속 빈번하게 들어오는걸 보고 뭔가 잘못 되었다는 것을 인지했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 잘 알지도 못하는 안드로이드 프로젝트를 또 뒤져보고 구글링하기 시작했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나이스페이먼츠 개발자 페이지도 들어가보고,.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이것저것 찾아보다가 또, 역시나, 결국 희망을 찾았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;찾아보니 API 30 이상(안드로이드 11)을 타겟할 때 외부 앱을 실행할 때는 Manifest에 queries에&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;외부 앱 패키지를 직업 추가 해주어야 한다고 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;여기서 말하는 외부 앱 패키지란?&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cx1mux/btshr6QoaHt/XXhjEaoXaPx4yxqFhsfR4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cx1mux/btshr6QoaHt/XXhjEaoXaPx4yxqFhsfR4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cx1mux/btshr6QoaHt/XXhjEaoXaPx4yxqFhsfR4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx1mux%2Fbtshr6QoaHt%2FXXhjEaoXaPx4yxqFhsfR4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1676&quot; height=&quot;646&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;구글 플레이스토어에서 원하는 앱을 검색한 후 url에서 id파라미터 값을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;국민카드 앱을 검색했을 때 나오는 id 값인&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;com.kbcard.cxh.appcard&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 값이 KB Pay 앱의 &lt;b&gt;패키지 명&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같이 이런식으로 써주면 되는 것이였다.&lt;/p&gt;
&lt;pre id=&quot;code_1685072398536&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    package=&quot;내패키지명&quot;
    
    ...
    
    &amp;lt;!-- SDKVersion 30 이상은 외부앱 실행 시 권한 추가 필요--&amp;gt;
    &amp;lt;queries&amp;gt;
	&amp;lt;package android:name=&quot;com.kbcard.cxh.appcard&quot; /&amp;gt; 
    &amp;lt;/queries&amp;gt;
    
    ...
    
    &amp;lt;application 
    		...
            
            				&amp;gt;
                            ...
    &amp;lt;/application&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 나이스페이먼츠 개발자 문서에서 제공한 내용이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685072611090&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    package=&quot;sample.nicepay.co.kr.nicepayappsample&quot;&amp;gt;
	
	&amp;lt;queries&amp;gt;
        &amp;lt;!--신용카드--&amp;gt;
        &amp;lt;package android:name=&quot;kr.co.samsungcard.mpocket&quot; /&amp;gt;  &amp;lt;!--삼성 앱카드, 삼성 앱카드 공동인증서--&amp;gt;
        &amp;lt;package android:name=&quot;com.shcard.smartpay&quot; /&amp;gt;  &amp;lt;!--신한 페이판--&amp;gt;
        &amp;lt;package android:name=&quot;com.shinhancard.smartshinhan&quot; /&amp;gt;  &amp;lt;!--신한(ARS/일반결제/Smart결제), 신한 공동인증서--&amp;gt;
        &amp;lt;package android:name=&quot;com.kbcard.cxh.appcard&quot; /&amp;gt;  &amp;lt;!--KBPay--&amp;gt;
        &amp;lt;package android:name=&quot;com.kbstar.liivbank&quot; /&amp;gt;  &amp;lt;!--LiiV(국민은행)--&amp;gt;
        &amp;lt;package android:name=&quot;com.kbstar.reboot&quot; /&amp;gt;  &amp;lt;!--new liib--&amp;gt;
        &amp;lt;package android:name=&quot;kvp.jjy.MispAndroid320&quot; /&amp;gt;  &amp;lt;!--페이북/ISP--&amp;gt;
        &amp;lt;package android:name=&quot;com.hanaskcard.paycla&quot; /&amp;gt;  &amp;lt;!--하나카드 원큐페이--&amp;gt;
        &amp;lt;package android:name=&quot;kr.co.hanamembers.hmscustomer&quot; /&amp;gt;  &amp;lt;!--하나멤버스--&amp;gt;
        &amp;lt;package android:name=&quot;com.lcacApp&quot; /&amp;gt;  &amp;lt;!--롯데 앱카드--&amp;gt;
        &amp;lt;package android:name=&quot;nh.smart.nhallonepay&quot; /&amp;gt;  &amp;lt;!--NH 올원페이, NH 올원페이 공동인증서--&amp;gt;
        &amp;lt;package android:name=&quot;com.wooricard.smartapp&quot; /&amp;gt;  &amp;lt;!--우리 WON 카드--&amp;gt;
        &amp;lt;package android:name=&quot;com.hyundaicard.appcard&quot; /&amp;gt;  &amp;lt;!--현대 앱카드--&amp;gt;
        &amp;lt;package android:name=&quot;kr.co.citibank.citimobile&quot; /&amp;gt;  &amp;lt;!--씨티카드--&amp;gt;

        &amp;lt;!--공인인증--&amp;gt;
        &amp;lt;package android:name=&quot;com.hanaskcard.rocomo.potal&quot; /&amp;gt;  &amp;lt;!--하나카드--&amp;gt;
        &amp;lt;package android:name=&quot;com.lumensoft.touchenappfree&quot; /&amp;gt;  &amp;lt;!--공동인증서--&amp;gt;

        &amp;lt;!--백신--&amp;gt;
        &amp;lt;package android:name=&quot;com.TouchEn.mVaccine.webs&quot; /&amp;gt;  &amp;lt;!--TouchEn mVaccine(신한)--&amp;gt;
        &amp;lt;package android:name=&quot;com.ahnlab.v3mobileplus&quot; /&amp;gt;  &amp;lt;!--V3(NH, 현대)--&amp;gt;
        &amp;lt;package android:name=&quot;kr.co.shiftworks.vguardweb&quot; /&amp;gt;  &amp;lt;!--V-Guard(삼성)--&amp;gt;

        &amp;lt;!--간편결제--&amp;gt;
        &amp;lt;package android:name=&quot;com.samsung.android.spay&quot; /&amp;gt;  &amp;lt;!--삼성페이(삼성, 농협, KB)--&amp;gt;
        &amp;lt;package android:name=&quot;com.samsung.android.spaylite&quot; /&amp;gt;  &amp;lt;!--삼성페이 미니(삼성, KB)--&amp;gt;
        &amp;lt;package android:name=&quot;com.kakao.talk&quot; /&amp;gt;  &amp;lt;!--카카오페이--&amp;gt;
        &amp;lt;package android:name=&quot;com.nhn.android.search&quot; /&amp;gt;  &amp;lt;!--네이버페이--&amp;gt;
        &amp;lt;package android:name=&quot;com.ssg.serviceapp.android.egiftcertificate&quot; /&amp;gt;  &amp;lt;!--SSGPay(현대)--&amp;gt;
        &amp;lt;package android:name=&quot;com.nhnent.payapp&quot; /&amp;gt;  &amp;lt;!--페이코(삼성, 농협, KB)--&amp;gt;
        &amp;lt;package android:name=&quot;com.lge.lgpay&quot; /&amp;gt;  &amp;lt;!--엘지페이(삼성, KB)--&amp;gt;
        &amp;lt;package android:name=&quot;com.lottemembers.android&quot; /&amp;gt;  &amp;lt;!--LPay--&amp;gt;
		&amp;lt;package android:name=&quot;com.tencent.mm&quot; /&amp;gt; &amp;lt;!-- 위챗페이--&amp;gt;
        &amp;lt;package android:name=&quot;viva.republica.toss&quot; /&amp;gt; &amp;lt;!-- 토스--&amp;gt;

        &amp;lt;!--계좌이체--&amp;gt;
        &amp;lt;package android:name=&quot;com.kftc.bankpay.android&quot; /&amp;gt;  &amp;lt;!--금결원--&amp;gt;

        &amp;lt;!--본인인증--&amp;gt;
        &amp;lt;package android:name=&quot;com.sktelecom.tauth&quot; /&amp;gt;  &amp;lt;!--SKT--&amp;gt;
        &amp;lt;package android:name=&quot;com.kt.ktauth&quot; /&amp;gt;  &amp;lt;!--KT--&amp;gt;
        &amp;lt;package android:name=&quot;com.lguplus.smartotp&quot; /&amp;gt;  &amp;lt;!--LGT--&amp;gt;
    &amp;lt;/queries&amp;gt;

    &amp;lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&amp;gt;

    &amp;lt;application
        android:allowBackup=&quot;true&quot;
        android:icon=&quot;@mipmap/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot;
        android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
        android:supportsRtl=&quot;true&quot;
        android:theme=&quot;@style/AppTheme&quot;
        android:usesCleartextTraffic=&quot;true&quot;&amp;gt;
        &amp;lt;activity android:name=&quot;.MainActivity&quot;
            android:configChanges=&quot;orientation&quot;
            android:screenOrientation=&quot;portrait&quot;&amp;gt;
            &amp;lt;intent-filter&amp;gt;
                &amp;lt;action android:name=&quot;android.intent.action.MAIN&quot; /&amp;gt;

                &amp;lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&amp;gt;
            &amp;lt;/intent-filter&amp;gt;
        &amp;lt;/activity&amp;gt;

        &amp;lt;activity
            android:name=&quot;.WebViewActivity&quot;
            android:label=&quot;NicePay Smart&quot;
            android:configChanges=&quot;orientation&quot;
            android:screenOrientation=&quot;portrait&quot;&amp;gt;
            &amp;lt;intent-filter&amp;gt;
                &amp;lt;action android:name=&quot;android.intent.action.VIEW&quot; /&amp;gt;
            &amp;lt;/intent-filter&amp;gt;
        &amp;lt;/activity&amp;gt;

    &amp;lt;/application&amp;gt;

&amp;lt;/manifest&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;queries에 패키지가 다 들어가 있는 코드를 이미 제공하고 있었다. 아무래도 우리 앱이.., 오래..된 것까지는 아니여도,,.&amp;nbsp; 허ㅠㅠ&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어렵다 정말.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래도 희망을 찾았고, 다시 한번 업데이트 배포를 했고. 검토 완료를 기다리고 있는 상황으로 검토 승인 이후에 최신 기종에서 결제가 제대로 되는지 확인 후 후기를 아래에 남기도록 하겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;[ 출처 : &lt;a href=&quot;https://developers.nicepay.co.kr/manual-app.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developers.nicepay.co.kr/manual-app.php&lt;/a&gt; ]&lt;/p&gt;
&lt;figure id=&quot;og_1685073435560&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Manual&quot; data-og-description=&quot;안드로이드 Kotlin Web-view 연동&quot; data-og-host=&quot;developers.nicepay.co.kr&quot; data-og-source-url=&quot;https://developers.nicepay.co.kr/manual-app.php&quot; data-og-url=&quot;https://developers.nicepay.co.kr/manual-app.php&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FVHfT/hySKEjqdQh/6P2RXulTj5B03gZpssCcVK/img.png?width=640&amp;amp;height=675&amp;amp;face=0_0_640_675,https://scrap.kakaocdn.net/dn/olcIZ/hySKF3E4Op/LsHY2NNXyTGtgevJWXl6k0/img.png?width=640&amp;amp;height=675&amp;amp;face=0_0_640_675&quot;&gt;&lt;a href=&quot;https://developers.nicepay.co.kr/manual-app.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.nicepay.co.kr/manual-app.php&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FVHfT/hySKEjqdQh/6P2RXulTj5B03gZpssCcVK/img.png?width=640&amp;amp;height=675&amp;amp;face=0_0_640_675,https://scrap.kakaocdn.net/dn/olcIZ/hySKF3E4Op/LsHY2NNXyTGtgevJWXl6k0/img.png?width=640&amp;amp;height=675&amp;amp;face=0_0_640_675');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Manual&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안드로이드 Kotlin Web-view 연동&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.nicepay.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ 출처 : &lt;a href=&quot;https://to2.kr/eyD&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://to2.kr/eyD&lt;/a&gt; ] url이 길어서 줄였습니다.&lt;/p&gt;
&lt;figure id=&quot;og_1685073473243&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Android/Kotlin] 패키지 명으로 외부 앱 실행 안됨 해결 / 안드로이드 11 이상 타켓 시 Manifest 추가&quot; data-og-description=&quot;[Android/Kotlin] 패키지 명으로 외부 앱 실행 안됨 해결 / 안드로이드 11 이상 타켓 시 Manifest 추가   기기 설치된 패키지명 확인 먼저 기기에 설치되어있는지 확인 후 설치되어있으면 앱 실행. 안되&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://to2.kr/eyD&quot; data-og-url=&quot;https://velog.io/@soyoung-dev/AndroidKotlin-패키지-명으로-외부-앱-실행-안됨-해결-안드로이드-11-이상-타켓-시-Manifest-추가&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/czvmkx/hySLzOh4WF/tEB8qR5hhMCAhSdClHczRK/img.png?width=1166&amp;amp;height=538&amp;amp;face=0_0_1166_538,https://scrap.kakaocdn.net/dn/FHNto/hySLJwB9bC/WKrBPzDnX7RnL7xej8O0WK/img.png?width=1166&amp;amp;height=538&amp;amp;face=0_0_1166_538,https://scrap.kakaocdn.net/dn/bmDNCW/hySLHFyQGE/xxIRzng0w02wYMRcLOyS6K/img.jpg?width=894&amp;amp;height=1000&amp;amp;face=0_0_894_1000&quot;&gt;&lt;a href=&quot;https://to2.kr/eyD&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://to2.kr/eyD&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/czvmkx/hySLzOh4WF/tEB8qR5hhMCAhSdClHczRK/img.png?width=1166&amp;amp;height=538&amp;amp;face=0_0_1166_538,https://scrap.kakaocdn.net/dn/FHNto/hySLJwB9bC/WKrBPzDnX7RnL7xej8O0WK/img.png?width=1166&amp;amp;height=538&amp;amp;face=0_0_1166_538,https://scrap.kakaocdn.net/dn/bmDNCW/hySLHFyQGE/xxIRzng0w02wYMRcLOyS6K/img.jpg?width=894&amp;amp;height=1000&amp;amp;face=0_0_894_1000');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Android/Kotlin] 패키지 명으로 외부 앱 실행 안됨 해결 / 안드로이드 11 이상 타켓 시 Manifest 추가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[Android/Kotlin] 패키지 명으로 외부 앱 실행 안됨 해결 / 안드로이드 11 이상 타켓 시 Manifest 추가   기기 설치된 패키지명 확인 먼저 기기에 설치되어있는지 확인 후 설치되어있으면 앱 실행. 안되&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>android package</category>
      <category>android queries</category>
      <category>android 외부 앱</category>
      <category>android 카드결제</category>
      <category>Androidmanifest.xml</category>
      <category>pname:</category>
      <category>안드로이드 외부 앱 실행</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1004</guid>
      <comments>https://harrydony.tistory.com/1004#entry1004comment</comments>
      <pubDate>Fri, 26 May 2023 12:58:57 +0900</pubDate>
    </item>
    <item>
      <title>t.has is not a function TypeError, t.has 타입 오류</title>
      <link>https://harrydony.tistory.com/1003</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 회사에서 운영하는 서비스의 결제 방식을 나이스페이먼츠에서 토스페이먼츠로 변경하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 토스 연동을 시작하며 관련 자료를 포스팅 하려던 찰나, 연동 테스트 API를 호출하려고 간단한 테스트 코드를 삽입했는데 오류가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;대체, 왜?&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVewXU/btshgppU5gu/3k7K4mQWS6F4ChLkbmF5AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVewXU/btshgppU5gu/3k7K4mQWS6F4ChLkbmF5AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVewXU/btshgppU5gu/3k7K4mQWS6F4ChLkbmF5AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVewXU%2FbtshgppU5gu%2F3k7K4mQWS6F4ChLkbmF5AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;652&quot; height=&quot;140&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글링을 하다가 다행히 문제를 해결할 수 있는 팁을 얻어 나도 기록해보려 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 문제를 해결하기까지도 대체 뭐 때문인지,. 망연자실 하고 있었던 나였다. , .&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 해당 오류 원인은 이러했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오에서 제공하는 카카오 맵 SDK 에서 javascript native Map을 활용하고 있는데, 또다른 스크립크에서 Map객체를 덮어 씌워서 문제가 발생한 것이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결 방법은, 카카오 맵 SDK보다&amp;nbsp; 우선적으로 import하니 오류 없이 정상적으로 토스 페이먼츠 연동 테스트 위젯이 활성화 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처에 기록한 글의 카카오에서는 동일한 이슈가 빈번히 발생하여 위와 같은 이슈가 발생하지 않도록 우회하도록 수정을 하였다고 했는데 왜 때문인지 우리 회사 프로젝트에서는 먹통이였다.,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 내가 문법을 잘못 작성해서 오류가 날 때도 있지만 이렇게 나도 모르게 오류가 발생하는 경우에는 스크립트 위치.,도 한번 의심해보면 좋을 것 같다.&amp;nbsp; 역시 개발자는 의심을..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 해결할 수 있어서 정말 다행이다,,.... 토스 연동하기 정말 쉽다고 안내를 받았는데 :)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ............. ,,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 이어서 작업을 해볼까 한다 !&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ 출처 : &lt;a href=&quot;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412&quot;&gt;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412 &lt;/a&gt;]&lt;/p&gt;
&lt;figure id=&quot;og_1684918977435&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;스크립트 에러 Uncaught TypeError: t.has is not a function&quot; data-og-description=&quot;안녕하세요. 국립중앙박물관 e-Museum 유지보수 담당 개발자입니다. 다름이 아니라 갑작스럽게 카카오 연동 로그인이 되지 않고 있어서 문의 드립니다. 저희 시스템 문제인지 확인을 해보았지만 &quot; data-og-host=&quot;devtalk.kakao.com&quot; data-og-source-url=&quot;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412&quot; data-og-url=&quot;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TfUIN/hySJfxf0nH/64zzytk3T2Ls65aFvjTyA1/img.png?width=1600&amp;amp;height=800&amp;amp;face=0_0_1600_800,https://scrap.kakaocdn.net/dn/c24Alv/hySJed3zh7/e89uM7hnYNmODCaxupMWv0/img.png?width=1600&amp;amp;height=800&amp;amp;face=0_0_1600_800,https://scrap.kakaocdn.net/dn/duQPmv/hySKuGlWOf/1IMoyrbyAMJgHKVAbCKyfk/img.png?width=777&amp;amp;height=286&amp;amp;face=0_0_777_286&quot;&gt;&lt;a href=&quot;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://devtalk.kakao.com/t/uncaught-typeerror-t-has-is-not-a-function/116412&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TfUIN/hySJfxf0nH/64zzytk3T2Ls65aFvjTyA1/img.png?width=1600&amp;amp;height=800&amp;amp;face=0_0_1600_800,https://scrap.kakaocdn.net/dn/c24Alv/hySJed3zh7/e89uM7hnYNmODCaxupMWv0/img.png?width=1600&amp;amp;height=800&amp;amp;face=0_0_1600_800,https://scrap.kakaocdn.net/dn/duQPmv/hySKuGlWOf/1IMoyrbyAMJgHKVAbCKyfk/img.png?width=777&amp;amp;height=286&amp;amp;face=0_0_777_286');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;스크립트 에러 Uncaught TypeError: t.has is not a function&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요. 국립중앙박물관 e-Museum 유지보수 담당 개발자입니다. 다름이 아니라 갑작스럽게 카카오 연동 로그인이 되지 않고 있어서 문의 드립니다. 저희 시스템 문제인지 확인을 해보았지만&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;devtalk.kakao.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>javascript</category>
      <category>function error</category>
      <category>is not a function</category>
      <category>javascript 오류</category>
      <category>script 위치</category>
      <category>t.has</category>
      <category>type error</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1003</guid>
      <comments>https://harrydony.tistory.com/1003#entry1003comment</comments>
      <pubDate>Wed, 24 May 2023 18:00:05 +0900</pubDate>
    </item>
    <item>
      <title>box-shadow를 사용해서 요소에 그림자 효과를 주는 방법</title>
      <link>https://harrydony.tistory.com/1002</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;box-shadow: 2px 2px 2px 2px;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDENjq/btsg9fm3oUo/l41lGlPz2vnRhBRKxIoiD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDENjq/btsg9fm3oUo/l41lGlPz2vnRhBRKxIoiD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDENjq/btsg9fm3oUo/l41lGlPz2vnRhBRKxIoiD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDENjq%2Fbtsg9fm3oUo%2Fl41lGlPz2vnRhBRKxIoiD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;362&quot; height=&quot;384&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;box-shadow: 3px 3px 3px 3px;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;738&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yyOHd/btsg873BoYR/qj7bMveDPzT8oMa1L7Kd61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yyOHd/btsg873BoYR/qj7bMveDPzT8oMa1L7Kd61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yyOHd/btsg873BoYR/qj7bMveDPzT8oMa1L7Kd61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyyOHd%2Fbtsg873BoYR%2Fqj7bMveDPzT8oMa1L7Kd61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;349&quot; height=&quot;372&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;box-shadow: 4px 4px 4px 4px;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;738&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UqTkz/btsharmHoFI/Mp154BsEryz7tVldlA3Uyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UqTkz/btsharmHoFI/Mp154BsEryz7tVldlA3Uyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UqTkz/btsharmHoFI/Mp154BsEryz7tVldlA3Uyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUqTkz%2FbtsharmHoFI%2FMp154BsEryz7tVldlA3Uyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;390&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;box-shadow: 5px 5px 5px 5px;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7XbLU/btshbdItwTk/H25ycyKXUZUMf7TQpBR9rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7XbLU/btshbdItwTk/H25ycyKXUZUMf7TQpBR9rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7XbLU/btshbdItwTk/H25ycyKXUZUMf7TQpBR9rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7XbLU%2FbtshbdItwTk%2FH25ycyKXUZUMf7TQpBR9rK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;384&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;742&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각 다르게 px을 적용해서 그림자 효과를 줄 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;박스가 조금 더 아름다워 보이는 효과  &lt;/p&gt;</description>
      <category>HTML, CSS</category>
      <category>box-shadow</category>
      <category>CSS</category>
      <category>CSS 그림자</category>
      <category>style</category>
      <category>그림자효과</category>
      <category>박스 그림자</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1002</guid>
      <comments>https://harrydony.tistory.com/1002#entry1002comment</comments>
      <pubDate>Tue, 23 May 2023 21:18:41 +0900</pubDate>
    </item>
    <item>
      <title>jquery로 특정 클래스를 가진 요소를 한번에 여러개를 찾아서 클래스를 변경하는 방법</title>
      <link>https://harrydony.tistory.com/1001</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;프론트 작업을 하다가 특정 클래스를 많은 요소에 심어두고 한번에 제거해서 &lt;br /&gt;다른 클래스를 추가하고 싶은 상황이 생겼다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;어떻게 할 수 있을까 생각을 하다가 foreach, each 다른것도 약하지만 프론트에 한없이 약하기에(본인은 굉장한 노력파)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;또 열심히 찾아본 결과 나름 나쁘지 않은 해답을 찾았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;본인은 요소들을 찾아서 값을 변경하거나 하는 등의 중요한 작업을 하는게 아닌 A클래스를 가진 요소를 찾아서 A클래스를 제거하고 B클래스로 변경해주고 싶었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이런 경우 아래와 같이 처리하면 아주 간단히 처리할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;// 특정 클래스를 가진 요소 선택
var elements = $(&quot;.특정클래스&quot;);

// 선택한 요소의 클래스 변경
elements.removeClass(&quot;기존클래스&quot;).addClass(&quot;변경할클래스&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같이 사용하면 1개의 클래스만이 아닌 특정클래스를 지닌 요소 여러개의 기존클래스를 한꺼번에 제거하고&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 요소들에 변경할 클래스를 모두 추가해줄 수 있다 :)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;햅삐햅삐&lt;/p&gt;</description>
      <category>javascript</category>
      <category>jQuery</category>
      <category>클래스 모두 변경</category>
      <category>클래스 요소 찾기</category>
      <category>특정 클래스 한꺼번에 변경</category>
      <category>특정 클래스들 변경</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1001</guid>
      <comments>https://harrydony.tistory.com/1001#entry1001comment</comments>
      <pubDate>Wed, 17 May 2023 19:33:10 +0900</pubDate>
    </item>
    <item>
      <title>jquery로 쿠키 생성/수정/삭제하는 방법</title>
      <link>https://harrydony.tistory.com/1000</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;우선 쿠키란 무엇인지 간략하게 알아보자&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키는 웹 사이트에서 사용자의 컴퓨터에 저장되는 작은 데이터 조각이다. 쿠키는 사용자와 웹 사이트 간의 상호작용을 기록하고 유지하는 데 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키는 웹 사이트가 클라이언트를 식별하고 상태를 추적하는 데 사용되며 클라이언트가 웹 사이트에 방문하면 서버에서 쿠키를 생성하고, 그 후 클라이언트의 브라우저에 저장된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트가 같은 웹 사이트를 방문할 때마다 해당 쿠키가 서버로 전송되어 서버는 클라이언트를 식별하고 상태를 추적할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키에는 이름, 값, 만료일, 도메인 등의 정보가 포함되어 브라우저에 저장된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;필요한 script 모음&lt;/h3&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://code.jquery.com/jquery-3.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;cookie 생성&lt;/h3&gt;
&lt;pre class=&quot;groovy&quot;&gt;&lt;code&gt;$.cookie('name', 'value', { expires: 1, path: '/' });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'name' : 쿠키명&lt;br /&gt;'value' : 쿠키값&lt;br /&gt;expires: 유효기간(만료일)을 의미하며 1은 1일을 의미&lt;br /&gt;path: 쿠키를 설정하는 도메인(경로) path를 꼭 설정해주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;cookie 삭제&lt;/h3&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;$.removeCookie('name', {path: '/'});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제하려는 쿠키명과 path를 기입하여 명시적으로 쿠키를 삭제해주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;만약, 쿠키의 값을 수정하고 싶다면?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 다른 value 값으로 쿠키를 설정해주게 된다면 쿠키의 값은 수정되지 않고 예상과는 다르게&lt;br /&gt;다른 값을 가진 동일한 쿠키가 생성되게 된다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;$.cookie('name', 'value22', { expires: 1, path: '/' });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;그러니 동일한 쿠키명으로 쿠키의 값을 바꾸고 싶다면?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;이미 생성한 쿠키를 삭제해준 후에 다른 값으로 새로 생성해주어야 한다.&lt;/h4&gt;</description>
      <category>javascript</category>
      <category>Cookie</category>
      <category>cookie 관리</category>
      <category>cookie 만드는법</category>
      <category>cookie 삭제</category>
      <category>cookie 생성</category>
      <category>cookie 설정</category>
      <category>cookie 수정</category>
      <category>jQuery</category>
      <category>쿠키</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/1000</guid>
      <comments>https://harrydony.tistory.com/1000#entry1000comment</comments>
      <pubDate>Wed, 17 May 2023 19:15:19 +0900</pubDate>
    </item>
    <item>
      <title>협업툴 Slack으로 즐겁게 일하는 방법 :)  Slack 상태 편집 하는 방법</title>
      <link>https://harrydony.tistory.com/999</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 사용하는 협업툴 Slack을 이용하다보면 알게모르게 신기한 기능들을 하나씩 접하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들자면.. 뭐, 워크플로부터 시작해서 지금 소개할 &lt;b&gt;상태 편집&lt;/b&gt;하는 방법이랄까?&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;워크플로 생성하는 방법은 조만간 소개하도록 하겠다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 사용하고 있는 Slack이다보니 상세하게 노출할 수 없기에 많은 부분을 가릴 수 있는 점&lt;br /&gt;이해 부탁드리겠습니다 :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 공유하고자 하는 Slack 상태 편집 결과물을 먼저 보여주려 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;1021&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWazH0/btsglR0F2BL/yXx2DjEMNI1Pd0pP1SEJ90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWazH0/btsglR0F2BL/yXx2DjEMNI1Pd0pP1SEJ90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWazH0/btsglR0F2BL/yXx2DjEMNI1Pd0pP1SEJ90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWazH0%2FbtsglR0F2BL%2FyXx2DjEMNI1Pd0pP1SEJ90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;이미지 오류&quot; loading=&quot;lazy&quot; width=&quot;995&quot; height=&quot;1128&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;1021&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화살표를 따라서 요기 조기 보면 'ON 업무중' 이라고 표시된 나의 Slack 상태를 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분명 많은 사람들이 사용하고 있을테지만 아직 상당히 모르는 사람이 많아서 먼저 사용해본다면 아주 재미있을 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6ddtk/btsgkjjFdVZ/ImvIQkrfp6KiXVBk7ciwCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6ddtk/btsgkjjFdVZ/ImvIQkrfp6KiXVBk7ciwCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6ddtk/btsgkjjFdVZ/ImvIQkrfp6KiXVBk7ciwCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6ddtk%2FbtsgkjjFdVZ%2FImvIQkrfp6KiXVBk7ciwCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;이미지 오류&quot; loading=&quot;lazy&quot; width=&quot;238&quot; height=&quot;347&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이드바 다이렉트 메시지에서 보면 이렇게 작성자 본인과 다른 동료만 Slack 상태가 설정되어 있고 다른 분들은 Slack 상태가 설정되어 있지 않은 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 방법을 알지만 설정하지 않은 것일 수도 있고 생각조차 못하셨을 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Slack 상태 편집을 하는 방법은 생각보다 아주 간단하다!&amp;nbsp; 이제 시작해볼까?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;맥북이라면 command + Shift + y 윈도우라면 ctrl + Shift + y 단축키&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;를 입력하여 상태 설정 창을 열 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단축키가 아니더라도 Slack에서 프로필을 열고 본문 상단에서 이미지로 첨부해서 이미 공유했던 이미지에서 아래 화살표가 가리키고 있는 ON 업무중 아래 쪽을 보면 상태 편집 메뉴가 보일 것이다. 그 메뉴를 클릭하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chhKc4/btsgmIh6V3i/Z8VllGYKSo6LLXpUgtWlWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chhKc4/btsgmIh6V3i/Z8VllGYKSo6LLXpUgtWlWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chhKc4/btsgmIh6V3i/Z8VllGYKSo6LLXpUgtWlWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchhKc4%2FbtsgmIh6V3i%2FZ8VllGYKSo6LLXpUgtWlWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;이미지 오류&quot; loading=&quot;lazy&quot; width=&quot;459&quot; height=&quot;242&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;위 이미지에서 보이는 상태 설정 창에서 엑스를 클릭하면?&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 내가 최근에 사용했던 상태를 확인할 수 있고 선택해서 설정도 할 수 있으며 다른 상태를 추가로 설정 및 변경도 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 Slack 상태를 만들어 놓은게 있다면?? 그걸 활용해도 좋다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리 회사에서는 만들어주신게 있는 것 같은데, 아무도 사용하고 있지 않다.. 내가 조만간 써....볼 일이 있을까,,, 병가.. 휴...가.... .쓸 일이..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sEYF1/btsgl6DzGNd/RTriy8nvxYo4k1NoJVCEhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sEYF1/btsgl6DzGNd/RTriy8nvxYo4k1NoJVCEhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sEYF1/btsgl6DzGNd/RTriy8nvxYo4k1NoJVCEhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsEYF1%2Fbtsgl6DzGNd%2FRTriy8nvxYo4k1NoJVCEhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;이미지 오류&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;522&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 최근에 사용한 상태를 선택해서 상태를 설정할 수 있고, 상태를 새로 설정하고 싶다면 화살표의 스마일 친구를 클릭해서 원하는 이모지를 선택해서 원하는 문구로 상태를 설정하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cD5EVK/btsgl6jgXeY/Xzj91cL9Y7hmiB9WTPvIGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cD5EVK/btsgl6jgXeY/Xzj91cL9Y7hmiB9WTPvIGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cD5EVK/btsgl6jgXeY/Xzj91cL9Y7hmiB9WTPvIGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD5EVK%2Fbtsgl6jgXeY%2FXzj91cL9Y7hmiB9WTPvIGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;이미지 오류&quot; loading=&quot;lazy&quot; width=&quot;444&quot; height=&quot;388&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 마지막이다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 되면 다시 이 상태로 돌아오게되고, 설정한 상태의 유지 시간을 설정할 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 날짜와 퇴근 시간 등도 설정할 수 있고 아예 지우지 않을 수도 있기 때문에 내 스케쥴에 맞춰 유용하게 사용하면 아주 좋을 것 같다 :)&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>slack</category>
      <category>slack 사용법</category>
      <category>slack 상태 변경</category>
      <category>slack 상태 변경하는 법</category>
      <category>slack 상태 설정</category>
      <category>slack 프로필</category>
      <category>상태 변경</category>
      <category>슬랙</category>
      <category>협업 메신저</category>
      <category>협업 툴</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/999</guid>
      <comments>https://harrydony.tistory.com/999#entry999comment</comments>
      <pubDate>Wed, 17 May 2023 18:23:10 +0900</pubDate>
    </item>
    <item>
      <title>Slack 유용한 단축키 모음</title>
      <link>https://harrydony.tistory.com/998</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 협업툴로 Slack을 사용하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현란한 손놀림으로 Slack을 사용하고 싶지만 그래도 나름 자주 사용하는 기능들은 손쉽게 이용하고 있는 것 같아 정리해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;window 사용자의 경우 command를 ctrl로 입력해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;검색&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;현재 대화에서 검색&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;사이드바 표시 / 숨기기&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + D&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;상태 설정 열기&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + Y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;오른쪽 창 닫기 또는 다시 열기&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + .&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;텍스트를 코드로 형식 지정&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;번호 매기기 목록으로 형식 선택&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;글머리 기호 목록으로 형식 선택&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;인용으로 형식 선택&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;코드 블록으로 형식 선택&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Option + Shift + command + C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;현재 채널의 모든 메시지를 읽음으로 표시&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;모든 메시지를 읽음으로 표시&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;파일 추가&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;코드 조각 생성&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;Shift + command + Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;이전 워크스페이스 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + Shift + [&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;다음 워크스페이스 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command + Shift + ]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;특정 워크스페이스 이동&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;command 및 1-9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나같은 경우에는 데이터를 수정하거나 삭제하는 경우가 있어 원본 데이터를 보관할 용도 또는 작성한 쿼리를 보관할 용도로써 단축키를 활용해 코드 블록을 만들어서 데이터 및 쿼리 보관을 손쉽게 하는 편이다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;굿굿&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>slack</category>
      <category>slack 단축키</category>
      <category>단축키</category>
      <category>슬랙</category>
      <category>슬랙 검색</category>
      <category>슬랙 단축키</category>
      <category>코드 조각 생성</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/998</guid>
      <comments>https://harrydony.tistory.com/998#entry998comment</comments>
      <pubDate>Wed, 17 May 2023 17:45:37 +0900</pubDate>
    </item>
    <item>
      <title>누나가 돈 많이 벌어 볼게..  용자는 코 낸내해 :)</title>
      <link>https://harrydony.tistory.com/997</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-13 001.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdQBEk/btsf9B5Y5eU/6azy5QYRBiCdCVtEnSSPaK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdQBEk/btsf9B5Y5eU/6azy5QYRBiCdCVtEnSSPaK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdQBEk/btsf9B5Y5eU/6azy5QYRBiCdCVtEnSSPaK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdQBEk%2Fbtsf9B5Y5eU%2F6azy5QYRBiCdCVtEnSSPaK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;603&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-13 001.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;용자는 껌을 물고 놓지를 않아  &lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-13 002.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/of5Nv/btsf4cFG3hj/upoVS6roLrHYAGWlFRVmj1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/of5Nv/btsf4cFG3hj/upoVS6roLrHYAGWlFRVmj1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/of5Nv/btsf4cFG3hj/upoVS6roLrHYAGWlFRVmj1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fof5Nv%2Fbtsf4cFG3hj%2FupoVS6roLrHYAGWlFRVmj1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;469&quot; height=&quot;625&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-13 002.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;껌먹고 자니.. 자니? 자니??????&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-59 001.jpeg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lYQRv/btsf4dkhvpP/qkWmeBJcNb0pWwIU0b3H2k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lYQRv/btsf4dkhvpP/qkWmeBJcNb0pWwIU0b3H2k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lYQRv/btsf4dkhvpP/qkWmeBJcNb0pWwIU0b3H2k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlYQRv%2Fbtsf4dkhvpP%2FqkWmeBJcNb0pWwIU0b3H2k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;674&quot; height=&quot;506&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-59 001.jpeg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또 ..... 자...................? ,,,, 그래 자라 자...  &lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-09-00 002.jpeg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdvK5M/btsf6DCOlQ0/w8hT4uVmkaraDIbxdZkrKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdvK5M/btsf6DCOlQ0/w8hT4uVmkaraDIbxdZkrKK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdvK5M/btsf6DCOlQ0/w8hT4uVmkaraDIbxdZkrKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdvK5M%2Fbtsf6DCOlQ0%2Fw8hT4uVmkaraDIbxdZkrKK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;453&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-09-00 002.jpeg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;누나는 일하는데 너는 계속 자........................... 그만 자 이제.........................  &lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-09-00 005.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMKAXy/btsgcpKqO15/4smKWlHSj73BHiI1zmvlVk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMKAXy/btsgcpKqO15/4smKWlHSj73BHiI1zmvlVk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMKAXy/btsgcpKqO15/4smKWlHSj73BHiI1zmvlVk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMKAXy%2FbtsgcpKqO15%2F4smKWlHSj73BHiI1zmvlVk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;660&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-09-00 005.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그래 !!!! 이제 누나한테 좀 와봐 용자야 !!!!!!!!!!!!!!!!!!!!!!  &lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-18.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq5PH9/btsgaKn4aYz/MKijqc3FLRSl4UmsvCk0vK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq5PH9/btsgaKn4aYz/MKijqc3FLRSl4UmsvCk0vK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq5PH9/btsgaKn4aYz/MKijqc3FLRSl4UmsvCk0vK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq5PH9%2FbtsgaKn4aYz%2FMKijqc3FLRSl4UmsvCk0vK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;668&quot; data-filename=&quot;KakaoTalk_Photo_2023-05-16-19-08-18.jpeg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;우리 용자 이렇게 털 예쁘게 길었는데,,, 너 더울까봐 잘라준거야,,,, 너무 상심치마........... 나름 괜찮아... 나쁘지 않아.. 제법 괜찮아 잘 어울려&amp;nbsp; 누나의 가위컷...............................................................................   ㅎㅎㅎㅎㅎㅎㅎㅎ&lt;/span&gt;&lt;/h4&gt;</description>
      <category>이리와 용자녀석아</category>
      <category>강아지</category>
      <category>고양이 같은 강아지</category>
      <category>냥아지</category>
      <category>용자</category>
      <category>털자르면 새끼 진돗개</category>
      <category>털자르면 시바견</category>
      <category>포메</category>
      <category>포메라니안</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/997</guid>
      <comments>https://harrydony.tistory.com/997#entry997comment</comments>
      <pubDate>Tue, 16 May 2023 19:30:03 +0900</pubDate>
    </item>
    <item>
      <title>quartz 중복 방지, quartz 중복 실행 해결, trigger 실행 카운트,  참고만해주세요</title>
      <link>https://harrydony.tistory.com/996</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿼츠 중복 해결을 바로 참고하시려면 아래로 이동해주세요!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 속한 회사에서 운영하는 플렛폼은 2개의 프로젝트로 운영되고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A프로젝트에서는 쿼츠를 돌렸을 때 중복 실행이 되지 않아 쿼츠를 실행할 기능들을 모두 A프로젝트에서 구현하고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;B프로젝트에서 쿼츠를 돌리면 중복 실행이 되어 쿼츠 구현을 하고 있지 않았으나 이번에 나는 B프로젝트의 중복되는 쿼츠 부분을 어떻게든 고치고 싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오기가 생겼다. 사실 이미 B프로젝트에 작업을 해버렸고, B프로젝트 쿼츠가 안된다고 안 쓸수 없지 않은가....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무나도 오기가... 생겨서 pc랑 싸울뻔...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 한 두달 전쯤에 톰캣 로그에서 쿼츠 스레드가 종료되지 않은채로 남아있다는 로그를 아주 많이 본적이 있었다. 이를 해결하고 싶었지만 당장 어떻게 해결을 해야할지 몰라서 급하게 다른 오류들만 해결하고 쿼츠 스레드 오류는 다음으로 미루었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿼츠 스레드가 종료되지 않았다는 오류는 아래들과 같다.&lt;/p&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-5](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-6](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-7](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-8](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-9](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)
3월 21, 2023 5:43:27 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
경고: 웹 애플리케이션 [ROOT]이(가) [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10](이)라는 이름의 쓰레드를 시작시킨 것으로 보이지만, 해당 쓰레드를 중지시키지 못했습니다. 이는 메모리 누수를 유발할 가능성이 큽니다. 해당 쓰레드의 스택 트레이스:
 java.lang.Object.wait(Native Method)
 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:543)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10&lt;/i&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Worker-10까지 쓰레드를 시작시켰고 중지시키지도 못했다고 , 메모리 누수를 유발할 가능성이 있다는 오류였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대체 뭐 때문에 중복으로 쿼츠가 돌아가는지 콘솔도 뚫어져라 쳐다보다보니 쿼츠가 처음부터 중복으로 실행되는 것도 아니였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다 한참..... 쿼츠 중복 실행되는걸로 알아보다가...... 왠걸.. 역시 콘솔 오류 볼 때는 두눈 크게 뜨고 봐야한다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 두 놈이랑 눈이 마주쳐버린 것.... 잡았다 요놈.........&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분명히 쿼츠가 종료되지 않은채로 중복으로 실행이 되고 있었고, 대체 왜 쿼츠가 종료되지도 않았는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 또 한참 찾아보다보니 trigger를 실행하는 수를 제한할 수 있는 방법이 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 방법이 바로 아래 방법이다 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 Quartz가 작업 스케줄링을 관리하는데 중복 실행을 피하기 위한 내부 메커니즘을 가지고 있다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그런데 나는 왜... 중복으로 실행이 되냔 말이다ㅠㅠ,,...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;&amp;lt;bean class=&quot;org.springframework.scheduling.quartz.SchedulerFactoryBean&quot;&amp;gt;
    &amp;lt;property name=&quot;triggers&quot; &amp;gt;
        &amp;lt;list&amp;gt;
            &amp;lt;ref bean=&quot;dayTrigger&quot;/&amp;gt;
        &amp;lt;/list&amp;gt;
    &amp;lt;/property&amp;gt;

    &amp;lt;!-- 여기부터 내가 추가해준 부분 시작 --&amp;gt;
    &amp;lt;property name=&quot;quartzProperties&quot;&amp;gt;
    &amp;lt;props&amp;gt;
        &amp;lt;!-- 다른 Quartz 속성들 --&amp;gt;
        &amp;lt;prop key=&quot;org.quartz.threadPool.threadCount&quot;&amp;gt;1&amp;lt;/prop&amp;gt;
    &amp;lt;/props&amp;gt;
    &amp;lt;/property&amp;gt;
    &amp;lt;!-- 여기까지 내가 추가해준 부분 끝 --&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 추가해준 부분을 추가해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간략하게 설명을 덧붙이면, SchedulerFactoryBean은 Quartz 스케줄러를 생성하고 관리하는 데 사용되며, 스케줄러의 실행 스레드 및 스케줄러의 설정을 관리한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;이를 통해 Quartz의 동작을 커스터마이즈할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;property name=&quot;&quot; 값은 지정해주면 되며, key=&quot;org.quartz.threadPool.threadCount&quot; 값은 &lt;b&gt;정확히 말하자면&lt;/b&gt; 중복 실행을 방지하기 위함이 아닌 한번에 trigger를 몇개 실행할지 제한을 두는 카운트이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본인같은 경우에는, 1개의 trigger에서 스레드가 종료되기도 전에 동일한 trigger가 동작되었고 앞으로 trigger를 추가하게 되더라도 그렇게 겹치는 시간들에 많은 쿼츠 작업을 할 것 같지는 않아 충분히 특정 시간에 1개의 trigger를 작동시켜도 된다고 판단하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 많은 도움을 드리지 못했다면,,... 아쉬움을 표합니다 ㅜㅠ.,&lt;/p&gt;</description>
      <category>Java</category>
      <category>bean</category>
      <category>Java</category>
      <category>Property</category>
      <category>Quartz</category>
      <category>SchedulerFactoryBean은</category>
      <category>Spring</category>
      <category>threadCount</category>
      <category>쿼츠</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/996</guid>
      <comments>https://harrydony.tistory.com/996#entry996comment</comments>
      <pubDate>Tue, 16 May 2023 18:10:29 +0900</pubDate>
    </item>
    <item>
      <title>[js] 꽃가루 날리는 효과</title>
      <link>https://harrydony.tistory.com/995</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    canvas{z-index:10; pointer-events: none; position: fixed; top: 0; transform: scale(1.1);}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt; &amp;lt;div class=&quot;buttonContainer&quot;&amp;gt;
     &amp;lt;button class=&quot;canvasBtn&quot; id=&quot;stopButton&quot;&amp;gt;Stop Confetti&amp;lt;/button&amp;gt;
     &amp;lt;button class=&quot;canvasBtn&quot; id=&quot;startButton&quot;&amp;gt;Drop Confetti&amp;lt;/button&amp;gt;
 &amp;lt;/div&amp;gt;

 &amp;lt;canvas id=&quot;canvas&quot;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
$(function(){

    reAction(); 

}); 

function reAction() {
    $('#startButton').trigger('click'); 
    setTimeout(function(){
        $('#stopButton').trigger('click'); 
    }, 6000); 
} 

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요긴하게 써먹을 수 있을 것 같다 ㅇㅅㅇ,,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;js파일은 첨부한 파일을 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/MMtTR/btsf58OTRhB/OuCw4LO6HvyGIjLgCFGbFK/confetti_v2.js?attach=1&amp;amp;knm=tfile.js&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;confetti_v2.js&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>javascript</category>
      <category>JS</category>
      <category>꽃가루 효과</category>
      <category>이벤트</category>
      <category>자바스크립트</category>
      <category>효과</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/995</guid>
      <comments>https://harrydony.tistory.com/995#entry995comment</comments>
      <pubDate>Tue, 16 May 2023 08:00:11 +0900</pubDate>
    </item>
    <item>
      <title>[ Spring Boot ] webapp &amp;gt; WEB-INF &amp;gt; views 구조로 JSP 연동, 이미지는 workspace인 webapp 바로 하위에 위치해야 불러 올 수 있다!!</title>
      <link>https://harrydony.tistory.com/994</link>
      <description>&lt;h1&gt;JSP 연동에 필요한 dependency&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- jstl : 기본적으로 Spring Boot는 내장 톰캣을 가지고 있지만, JSP 템플릿 엔진이 존재하지 않기에, JSP 라이브러리인 JSTL 또한 사용할 수 있게 추가해야 한다. --&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;jstl&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;

&amp;lt;!-- tomcat-embed-jasper : JSP 템플릿 엔진을 사용할 수 있도록 해주는 라이브러리  --&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.tomcat.embed&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;tomcat-embed-jasper&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h1&gt;application.yml 기본 설정&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;server:
  port: 8085
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/  # 변경가능
      suffix: .jsp      
&lt;/code&gt;&lt;/pre&gt;&lt;h1&gt;Spring Boot 프로젝트의 JSP 파일을 관리할 폴더 구조&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;webapp &amp;gt; WEB-INF &amp;gt; views(폴더명 변경 가능) &amp;gt; jsp 파일 보관 &lt;/li&gt;
&lt;li&gt;이미지는 필히 webapp &amp;gt; 하위 폴더에 image 폴더를 만들어서 이미지를 호출하도록!!! &lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;위에 이미지 경로... 아주 중요하다ㅠㅠ&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
      <category>Java</category>
      <category>JSP 연동</category>
      <category>Spring Boot</category>
      <category>경로 설정</category>
      <category>다시 시작</category>
      <category>스프링부트</category>
      <category>차근차근</category>
      <category>초심을 잃지 말쟈</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/994</guid>
      <comments>https://harrydony.tistory.com/994#entry994comment</comments>
      <pubDate>Tue, 16 May 2023 07:10:20 +0900</pubDate>
    </item>
    <item>
      <title>구글 플레이 콘솔에서 이전 앱 버전으로 롤백을 할 수 있는가?</title>
      <link>https://harrydony.tistory.com/993</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 안드로이드 앱의 targetSdkVersion만을 수정하여 구글 플레이 콘솔에 업데이트할 일이 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어제 올린 글과 같은 사유로 앱 업데이트를 진행해야 했고 검토 승인되어 구글 플레이스토어에서 앱을 다시 다운로드 받아 실행시켜보니 난감하지 않을 수 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앱이 실행되지 않았다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무나도 큰일이지 않은가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당장 안드로이드 프로젝트를 가지고 작업을 해야 하는데 나는 안드로이드 앱 관련해서 업무를 맡아본 적도 없을 뿐더러 관련 공부를 한적도 없었다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹뷰를 사용해서 앱을 만들었다고는 하지만,,, 대체 어떻게 해야 한단 말인가  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것저것 알아보다가 업데이트한 앱을 이전 버전으로 롤백할 수 있는 기능이 있을까 싶어서 찾아보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핸드폰 기기에서 업데이트한 앱의 버전을 낮추는 방법 말고는 아무것도 검색되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글 플레이 콘솔에서 업데이트한 앱의 버전을 낮추는 방법은 없었다...,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루종일 멘붕이 오고 이것저것 찾아보다가 드디어 관련 정보를 찾았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2023년 5월 이후부터 구글 플레이 콘솔에서 직접 앱을 롤백하는 기능은 제공되지 않는다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금이 5월 12일이니까,, 저번달까지는 이전의 앱 버전으로 바로 롤백이 가능했다는 말이다ㅠㅠ....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;결론&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번달부터(2023년5월)는 구글 플레이 콘솔에서 이전의 앱 버전으로 바로 롤백할 수 없다!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 나는 이제,, 앱을 제대로 구동시킬 방법을 찾아보아야겠다...!&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>android</category>
      <category>구글 플레이 콘솔</category>
      <category>안드로이드</category>
      <category>앱</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/993</guid>
      <comments>https://harrydony.tistory.com/993#entry993comment</comments>
      <pubDate>Fri, 12 May 2023 17:18:04 +0900</pubDate>
    </item>
    <item>
      <title>[Android] How to import a project that another person was working on into Android Studio / 안드로이드 스튜디오로 다른 사람이 작업하던 프로젝트 import하는 방법</title>
      <link>https://harrydony.tistory.com/992</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 운영하는 플렛폼은 웹서비스로 제공하고 있고 안드로이드 어플로도 서비스를 제공하고 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The platform operated by the company is provided as a web service and also available as an Android application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영되고 있는 안드로이드 앱은 웹뷰를 이용하여 앱을 만들기 위해서 제작된 앱으로 내가 아닌 기존에 담당하던 다른 개발자가 개발한 앱이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 다른 부서로부터 아래와 같은 오류로 인하여 구글 플레이스토어에서 내가 소속된 회사에서 제공하는 서비스 앱을 다운로드 받을 수 없다는 문의를 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앱을 다운로드 받을 수 없다는 오류는 아래와 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The platform operated by our company is provided as a web service, and we also provide services through an Android app.&lt;br /&gt;The Android app that is currently in operation was created using a web view, and was developed by another developer who was in charge before me.&lt;br /&gt;Recently, we received an inquiry from another department stating that they cannot download the service app provided by our company from the Google Play Store due to the following error:&lt;br /&gt;&quot;The app cannot be downloaded.&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;이 앱은 이전 버전의 Android를 위해 만들어진 것이기 때문에 현 기기에서 사용할 수 없습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;This app is designed for an earlier version of Android and is not compatible with the current device.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPnCu/btseQU5rBE6/IXNJ0yFAmw9WgBKkbJosBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPnCu/btseQU5rBE6/IXNJ0yFAmw9WgBKkbJosBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPnCu/btseQU5rBE6/IXNJ0yFAmw9WgBKkbJosBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPnCu%2FbtseQU5rBE6%2FIXNJ0yFAmw9WgBKkbJosBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;385&quot; height=&quot;863&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 구글링 해본 결과, 안드로이드 프로젝트에서 targetSDKVersion을 올려서 변경해주어야 한다는 글을 찾게되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 처음보는 안드로이드 프로젝트 열어서 이것저것 열어보기 시작 !!&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;So, I did some Googling and found out that I need to update the targetSDKVersion in the Android project to fix this issue. I opened the Android project that I've never seen before and started looking into it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엄청난 오류들을 겪게 되었고, 그 중에서 내가 구글 플레이 콘솔에 앱을 aab파일로 업로드 하기 위해서 build 부터 aab파일을 추출하기까지 만났던 오류들을 해결하기 위한 과정들을 기록해보려 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;I am going to record the steps I took to solve various errors that I encountered, including the process of building and extracting an AAB file for uploading the app to the Google Play Console.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선적으로 처음 import하는 프로젝트를 build 해보려고 하면 gradle이 존재하지 않는다는 오류를 발견하게 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 경우, 내가 사용하는 pc 로컬에는 import한 프로젝트에서 사용하는 gradle이 없는게 맞기 때문에 프로젝트에서 정의한 gradle을 설치해주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방법은 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;First of all, when you try to build the imported project, you will encounter an error that says &quot;gradle is not found&quot;.&lt;br /&gt;In this case, it is because the gradle used in the imported project is not present on your local PC, so you need to install the gradle defined in the project.&lt;br /&gt;The method is as follows:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2564&quot; data-origin-height=&quot;1612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biFUpw/btseNtA6Pad/3tGVNmQINKwmTX3tj6slg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biFUpw/btseNtA6Pad/3tGVNmQINKwmTX3tj6slg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biFUpw/btseNtA6Pad/3tGVNmQINKwmTX3tj6slg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiFUpw%2FbtseNtA6Pad%2F3tGVNmQINKwmTX3tj6slg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2564&quot; height=&quot;1612&quot; data-origin-width=&quot;2564&quot; data-origin-height=&quot;1612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Android Studio -&amp;gt; Preferences -&amp;gt; gradle&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에서 Use Gradle from: 에 Specified location -&amp;gt; 'gradle-wrapper.properties' file 로 변경해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 혹시라도 JDK오류가 발생할 경우, Gradle user home과 Gradle JDK를 로컬 환경에 맞추어 수정해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Use Gradle from을 수정한 후에는 아래 Apply를 클릭해주어야 프로젝트에 맞는 gradle을 다운로드 받게 된다. 그래도 gradle오류가 발생한다면 존재하진 않는다는 gradle을 명시해주는 URL로 직접 다운로드 하여 build하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 모든 작업이 끝난 후에는 OK를 눌러준다.&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;프로젝트의 Sync 맞춰주기(1번) / 프로젝트 정리 (2번)&lt;/h1&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;File &amp;gt; Sync Project with Gradle Files&lt;/li&gt;
&lt;li&gt;Build &amp;gt; Clean Project 또는 Build &amp;gt; Rebuild Project&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;프로젝트 Gradle Plugin Version, Gradle Version 수정&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트에서 Gradle Plugin Version과 Gradle Version이 맞지 않아서 오류가 발생할 수도 있다.&lt;br /&gt;Gradle Plugin Version과 Gradle Version은 아래 이미지를 참조하여 호환되는 버전을 맞춰 주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTng0q/btseQjExYQe/SkqH14ACooy8UmLjXOoC0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTng0q/btseQjExYQe/SkqH14ACooy8UmLjXOoC0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTng0q/btseQjExYQe/SkqH14ACooy8UmLjXOoC0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTng0q%2FbtseQjExYQe%2FSkqH14ACooy8UmLjXOoC0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;841&quot; height=&quot;579&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변경하는 방법&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;File &amp;gt; Project Structure &amp;gt; Project&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;1054&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sU6al/btsePUyu2y0/TGtzpmLZRuFj5kn7Lay82K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sU6al/btsePUyu2y0/TGtzpmLZRuFj5kn7Lay82K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sU6al/btsePUyu2y0/TGtzpmLZRuFj5kn7Lay82K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsU6al%2FbtsePUyu2y0%2FTGtzpmLZRuFj5kn7Lay82K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1898&quot; height=&quot;1054&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;1054&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트의 Gradle Scripts &amp;gt; build.gradle(Module:app) 파일에 targetSdkVersion, compileSdkVersion을 동일하게 맞춰서 수정해주었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I7iq6/btsePTM5pWg/sedAD6bTG6M2ehUctTTieK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I7iq6/btsePTM5pWg/sedAD6bTG6M2ehUctTTieK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I7iq6/btsePTM5pWg/sedAD6bTG6M2ehUctTTieK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI7iq6%2FbtsePTM5pWg%2FsedAD6bTG6M2ehUctTTieK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1338&quot; height=&quot;528&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;528&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 versionCode, versionName도 이전 버전보다 높게 설정해주었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 설정해준게 있는 것 같은데,. 나중에 이어서 작성을 해보려 한다,,...,&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 유용한 정보</category>
      <category>android</category>
      <category>android studio</category>
      <category>구글 플레이 콘솔</category>
      <category>안드로이드</category>
      <category>앱</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/992</guid>
      <comments>https://harrydony.tistory.com/992#entry992comment</comments>
      <pubDate>Thu, 11 May 2023 15:31:28 +0900</pubDate>
    </item>
    <item>
      <title>[ MySql ] 주단위 데이터 조회</title>
      <link>https://harrydony.tistory.com/988</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;참고 링크&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://recoderr.tistory.com/52&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://recoderr.tistory.com/52&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1675218210795&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;MYSQL 쿼리문 통계(일간/주간/월간/기간별), DATE_FORMAT() 알아보기&quot; data-og-description=&quot;MySQL 쿼리문(일간/주간/월간/기간별) // 일간통계 SELECT DATE(&amp;#96;날짜컬럼&amp;#96;) AS &amp;#96;date&amp;#96;, sum(&amp;#96;value&amp;#96;) FROM test_st GROUP BY &amp;#96;date&amp;#96;; // 주간통계 SELECT DATE_FORMAT(DATE_SUB(&amp;#96;날짜컬럼&amp;#96;, INTERVAL (DAYOFWEEK(&amp;#96;날짜컬럼&amp;#96;)-1) DAY), '%Y/%&quot; data-og-host=&quot;recoderr.tistory.com&quot; data-og-source-url=&quot;https://recoderr.tistory.com/52&quot; data-og-url=&quot;https://recoderr.tistory.com/52&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/u3IsB/hyRtUTuCro/WPACnuCfb8s5TbQsPRblEK/img.png?width=500&amp;amp;height=285&amp;amp;face=0_0_500_285,https://scrap.kakaocdn.net/dn/ETNLK/hyRt0MWIvE/aN2tkAIrpDyEt7f1De10j1/img.png?width=500&amp;amp;height=285&amp;amp;face=0_0_500_285,https://scrap.kakaocdn.net/dn/bnjT72/hyRtYhhYUa/M8iIhhJYW3oW6G6DcH2FVK/img.png?width=631&amp;amp;height=533&amp;amp;face=0_0_631_533&quot;&gt;&lt;a href=&quot;https://recoderr.tistory.com/52&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://recoderr.tistory.com/52&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/u3IsB/hyRtUTuCro/WPACnuCfb8s5TbQsPRblEK/img.png?width=500&amp;amp;height=285&amp;amp;face=0_0_500_285,https://scrap.kakaocdn.net/dn/ETNLK/hyRt0MWIvE/aN2tkAIrpDyEt7f1De10j1/img.png?width=500&amp;amp;height=285&amp;amp;face=0_0_500_285,https://scrap.kakaocdn.net/dn/bnjT72/hyRtYhhYUa/M8iIhhJYW3oW6G6DcH2FVK/img.png?width=631&amp;amp;height=533&amp;amp;face=0_0_631_533');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MYSQL 쿼리문 통계(일간/주간/월간/기간별), DATE_FORMAT() 알아보기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MySQL 쿼리문(일간/주간/월간/기간별) // 일간통계 SELECT DATE(`날짜컬럼`) AS `date`, sum(`value`) FROM test_st GROUP BY `date`; // 주간통계 SELECT DATE_FORMAT(DATE_SUB(`날짜컬럼`, INTERVAL (DAYOFWEEK(`날짜컬럼`)-1) DAY), '%Y/%&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;recoderr.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 만든 쿼리&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675218249623&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
# 주간통계
SELECT min(start_time) AS 'start_time', max(end_time) AS 'end_time' , date_time , sum(count) AS total_count  FROM (
# SELECT *, sum(count), min(start_time), max(end_time) FROM (
	SELECT DATE_FORMAT(DATE_SUB(`agree_time`, INTERVAL (DAYOFWEEK(`agree_time`)-1) DAY), '%Y-%m-%d') AS start_time,
    	   DATE_FORMAT(DATE_SUB(`agree_time`, INTERVAL (DAYOFWEEK(`agree_time`)-7) DAY), '%Y-%m-%d') AS end_time,
	       DATE_FORMAT(`agree_time`, '%Y%U') AS `date_time`,
    	   count(*) AS count, 
	       product_option_seq_conetns
	FROM (
		SELECT * FROM inf_product_contents GROUP BY product_option_seq_conetns
	) `prod`
	WHERE agree_time BETWEEN '2022-01-01 00:00:00' AND '2023-01-31 23:59:59'
	GROUP BY  agree_time 
) `prod_2` 
GROUP BY  date_time ;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/988</guid>
      <comments>https://harrydony.tistory.com/988#entry988comment</comments>
      <pubDate>Wed, 1 Feb 2023 11:24:45 +0900</pubDate>
    </item>
    <item>
      <title>[ js ] 화면 높이, 너비값 얻기</title>
      <link>https://harrydony.tistory.com/987</link>
      <description>&lt;pre id=&quot;code_1673239748477&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.screenTop : 상단으로부터 브라우저 위치 
window.screenLeft : 왼쪽으로부터 브라우저 위치 
window.innerWidth : 브라우저 화면의 너비(viewport) 
window.innerHeight : 브라우저 화면의 높이(viewport) 
window.outerWidth : 브라우저 전체의 너비(메뉴, 툴바, 스크롤바 포함) 
window.outerHeight : 브라우저 전체의 높이(메뉴, 툴바, 스크롤바 포함)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>javascript</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/987</guid>
      <comments>https://harrydony.tistory.com/987#entry987comment</comments>
      <pubDate>Mon, 9 Jan 2023 13:49:10 +0900</pubDate>
    </item>
    <item>
      <title>[mysql] Authentication plugin 'caching_sha2_password' cannot be loaded 오류 해결하기</title>
      <link>https://harrydony.tistory.com/986</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;로컬에 mysql db를 설치한 다음 Sequel Pro로 접속하려고 하니 Authentication plugin 'caching_sha2_password' cannot be loaded 오류가 발생했다.&lt;/p&gt;
&lt;h1&gt;원인&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql 8.X 버전 부터 비밀번호의 암호화 방식이 달라졌다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 Sequel Pro는 아주 쓰기 좋은 훌륭한 제품이지만, 아직 새로운 종류의 사용자 로그인(SHA2 방식의 암호화)를 위한 개발이 되지 않았나보다.&lt;/p&gt;
&lt;h1&gt;해결 방법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sequel Pro를 쓰기 위해서는 계정의 비밀번호를 mysql_native_password 방식의 비밀번호로 변경해준 후에 사용할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;ALTER USER '계정명'@'*' IDENTIFIED WITH mysql_native_password BY '새로운비밀번호';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 명령어로 계정과 새로운 비밀번호를 입력해주어 외부에서 mysql에 접속할 수 있게 된다. 룰루.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 사이트&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@metamata/%EB%A1%9C%EC%BB%AC-mysql-%EC%84%A4%EC%B9%98-%ED%9B%84-Sequal-Pro-%EC%A0%91%EC%86%8D-%EC%8B%9C-Authentication-plugin-cachingsha2password-cannot-be-loaded-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@metamata/%EB%A1%9C%EC%BB%AC-mysql-%EC%84%A4%EC%B9%98-%ED%9B%84-Sequal-Pro-%EC%A0%91%EC%86%8D-%EC%8B%9C-Authentication-plugin-cachingsha2password-cannot-be-loaded-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SQL</category>
      <category>db</category>
      <category>MySQL</category>
      <category>데이터</category>
      <category>서버</category>
      <category>외부 접속</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/986</guid>
      <comments>https://harrydony.tistory.com/986#entry986comment</comments>
      <pubDate>Tue, 3 Jan 2023 15:21:07 +0900</pubDate>
    </item>
    <item>
      <title>[ Mysql ] root 외 사용자 추가 외 모든 권한 부여</title>
      <link>https://harrydony.tistory.com/985</link>
      <description>&lt;h1&gt;1.&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;create user &amp;#39;계정이름&amp;#39;@&amp;#39;localhost&amp;#39; identified by &amp;#39;비밀번호&amp;#39;;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;오류가 난다면 비밀번호의 맨 앞자리를 대문자로 해보면 된다.&lt;br&gt;비밀번호의 맨 앞자리를 대문자로 했는데도 오류가 발생한다면 다른 문제일 수 있으니 오류를 살펴보아야 한다.&lt;/p&gt;
&lt;h1&gt;2.&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;grant all privileges on *.* to &amp;#39;계정&amp;#39;@&amp;#39;%&amp;#39; with grant option;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;권한 부여&lt;/p&gt;
&lt;h1&gt;3.&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;flush privileges;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;부여한 권한이 제대로 작동되도록 업데이트를 한번 해준다.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;위 순서대로 했는데 오류가 발생한다면? 또는 생성한 계정으로 외부에서 mysql 접속이 되지 않는다면 root 계정을 만든 다음에 새로운 계정을 다시 만들어 보도록 한다.&lt;/p&gt;
&lt;h1&gt;1.&lt;/h1&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;CREATE USER &amp;#39;root&amp;#39;@&amp;#39;%&amp;#39; IDENTIFIED BY &amp;#39;root&amp;#39;;&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;2.&lt;/h1&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;GRANT ALL PRIVILEGES ON *.* TO &amp;#39;root&amp;#39;@&amp;#39;%&amp;#39; WITH GRANT OPTION;&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;3.&lt;/h1&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;flush privileges;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;새로고침을 해준다.&lt;/p&gt;
&lt;p&gt;root계정을 만든 후에 다시 추가할 계정을 만들고 모든 권한을 부여해보자. &lt;/p&gt;</description>
      <category>SQL</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/985</guid>
      <comments>https://harrydony.tistory.com/985#entry985comment</comments>
      <pubDate>Tue, 3 Jan 2023 14:59:14 +0900</pubDate>
    </item>
    <item>
      <title>[ AWS EC2에 Mysql 설치 ]  mysql 설치하는 방법</title>
      <link>https://harrydony.tistory.com/984</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672646199873&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&lt;/p&gt;
&lt;pre id=&quot;code_1672646227928&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yum install mysql57-community-release-el7-11.noarch.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672646257008&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yum install mysql-community-server&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672646284017&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;systemctl start mysqld&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672646299617&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;service mysqld status&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. mysql 로그인&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672647680147&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql -u root -p&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. mysql 초기 비밀번호 확인하는 방법&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672647706259&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;grep password /var/log/mysqld.log&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어를 입력하면 mysql 초기 비밀번호를 알려준다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 비밀번호 최초 설정&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672648317035&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;alter user &quot;root&quot;@&quot;localhost&quot; identified with mysql_native_password by &quot;비밀번호&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 비밀번호는 필히 맨 앞을 영대문자로 입력해야 오류가 발생하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호를 최초 설정하는 다른 명령어도 있지만 mysql 버전 8부터는 위 명령어로 비밀번호를 최초 설정해야 오류가 발생하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(여러번의 오류로 구글링해서 찾아낸 명령어...... )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래 참고 사이트에는 mysql을 설치하는 방법과 mysql 로그인하는 방법이 안내되고 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;참고 사이트&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kioworks.tistory.com/281&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kioworks.tistory.com/281&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1672646315766&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[mysql] centos 7 에서 mysql 설치&quot; data-og-description=&quot;설치여부 확인 [root@ncloud-server-centos1 lib64]# rpm -qa |grep ^mysql [root@ncloud-server-centos1 lib64]# yum으로 설치될까? [root@ncloud-server-centos1 lib64]# yum install *mysql-server* Loaded plugins: fastestmirror, langpacks Loading mirror &quot; data-og-host=&quot;kioworks.tistory.com&quot; data-og-source-url=&quot;https://kioworks.tistory.com/281&quot; data-og-url=&quot;https://kioworks.tistory.com/281&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/J9XAm/hyQ8TgpUm1/x0MIgpGKkfE8zy9dw7U6Yk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rUu1I/hyQ60IejT1/6XktY4di5e4PBk7hGEqQhK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://kioworks.tistory.com/281&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kioworks.tistory.com/281&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/J9XAm/hyQ8TgpUm1/x0MIgpGKkfE8zy9dw7U6Yk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rUu1I/hyQ60IejT1/6XktY4di5e4PBk7hGEqQhK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[mysql] centos 7 에서 mysql 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;설치여부 확인 [root@ncloud-server-centos1 lib64]# rpm -qa |grep ^mysql [root@ncloud-server-centos1 lib64]# yum으로 설치될까? [root@ncloud-server-centos1 lib64]# yum install *mysql-server* Loaded plugins: fastestmirror, langpacks Loading mirror&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kioworks.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Server, centOS 7 외</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>MySQL</category>
      <category>mysql설치</category>
      <category>데이터</category>
      <category>서버</category>
      <author>JooKit 주킷</author>
      <guid isPermaLink="true">https://harrydony.tistory.com/984</guid>
      <comments>https://harrydony.tistory.com/984#entry984comment</comments>
      <pubDate>Mon, 2 Jan 2023 16:59:47 +0900</pubDate>
    </item>
  </channel>
</rss>