<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Computer engineer</title>
    <link>https://hu-studyrecord.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 8 Aug 2026 15:43:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>HU_717</managingEditor>
    <image>
      <title>Computer engineer</title>
      <url>https://tistory1.daumcdn.net/tistory/5963322/attach/156c1af2ef144ab0969a36d8726c9636</url>
      <link>https://hu-studyrecord.tistory.com</link>
    </image>
    <item>
      <title>[Network] OSI 7 계층</title>
      <link>https://hu-studyrecord.tistory.com/104</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Network를 공부하면서 제일 기본이 되는 OSI 7계층에 대해 정리하였다&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;OSI 7계층&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다&lt;/li&gt;
&lt;li&gt;OSI 7계층으로 나눔으로써 통신이 일어나는 과정을 파악할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;물리 계층 (Physical Layer)&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;비트(1과 0)&lt;/b&gt; 단위로 변환하여 &lt;b&gt;전기적, 광학적 신호&lt;/b&gt;로 전송함.&lt;/li&gt;
&lt;li&gt;전기적, 기계적, 기능적인 특성을 이용하여 물리적 매체(케이블, 광섬유, 무선)를 통해 데이터 전송.&lt;/li&gt;
&lt;li&gt;사용되는 장비로는 &lt;b&gt;리피터&lt;/b&gt;, &lt;b&gt;허브&lt;/b&gt;, &lt;b&gt;네트워크 인터페이스 카드(NIC)&lt;/b&gt; 등이 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 링크 계층 (Data Link Layer)&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;MAC 주소&lt;/b&gt;를 기반으로 안전하게 전송.&lt;/li&gt;
&lt;li&gt;CRC 기반 &lt;b&gt;오류 제어&lt;/b&gt;, &lt;b&gt;흐름 제어&lt;/b&gt;를 통해 신뢰성을 보장함.&lt;/li&gt;
&lt;li&gt;데이터를 &lt;b&gt;Point-to-Point&lt;/b&gt; 또는 &lt;b&gt;Point-to-Multipoint&lt;/b&gt; 방식으로 전달하며, 네트워크 간 충돌을 방지함.&lt;/li&gt;
&lt;li&gt;장비로는 &lt;b&gt;스위치&lt;/b&gt;, &lt;b&gt;브릿지&lt;/b&gt;가 사용됨.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;프레임 단위의 데이터 전달, 오류 검출 및 수정&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;네트워크 계층 (Network Layer)&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;IP 주소&lt;/b&gt;를 통해 데이터를 목적지까지 전달하며, &lt;b&gt;라우팅&lt;/b&gt;을 통해 최적 경로를 설정함.&lt;/li&gt;
&lt;li&gt;여러 네트워크를 거쳐 데이터를 전송하며, 패킷의 전달을 책임짐.&lt;/li&gt;
&lt;li&gt;다양한 길이의 데이터를 처리하며 **서비스 품질(QoS)**을 제공함.&lt;/li&gt;
&lt;li&gt;장비로는 &lt;b&gt;라우터&lt;/b&gt;, &lt;b&gt;Layer 3 스위치&lt;/b&gt;가 있음.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;주소 지정(IP) 및 경로 설정(라우팅)&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;전송 계층 (Transport Layer)&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; 단위로 나누고, 신뢰성 있는 데이터 전송을 보장하기 위해 &lt;b&gt;TCP&lt;/b&gt;와 같은 프로토콜을 사용함.&lt;/li&gt;
&lt;li&gt;오류 검출 및 복구, 흐름 제어, 데이터 중복 방지를 수행함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;포트 번호&lt;/b&gt;를 사용하여 여러 응용 프로그램 간 데이터 전송을 관리함.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;End-to-End 통신 관리, 신뢰성 보장, 포트 기반 데이터 전송&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;세션 계층 (Session Layer)&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;를 담당하며, 데이터 전송 중단 시 복구를 지원함.&lt;/li&gt;
&lt;li&gt;양 끝단 응용 프로세스 간 &lt;b&gt;논리적 연결&lt;/b&gt;을 관리함.&lt;/li&gt;
&lt;li&gt;데이터 스트림 동기화 및 대화 관리(다중 작업 처리)를 제공함.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;세션 설정, 동기화, 복구 관리&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;현 계층 (Presentation Layer)&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;하여 표현.&lt;/li&gt;
&lt;li&gt;서로 다른 시스템 간의 데이터 표현 차이를 해결하고, 데이터의 독립성을 제공함.&lt;/li&gt;
&lt;li&gt;예: &lt;b&gt;JPEG, ASCII, SSL/TLS 암호화&lt;/b&gt; 처리.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;데이터 변환, 압축, 암호화&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;응용 계층 (Application Layer)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자와 네트워크 간 상호작용을 담당하며, 사용자가 이해할 수 있는 데이터 형식을 제공함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;HTTP, FTP, SMTP, POP3, IMAP, Telnet&lt;/b&gt; 등 네트워크 프로토콜을 사용하여 응용 서비스 제공.&lt;/li&gt;
&lt;li&gt;이메일, 파일 전송, 원격 접속 등의 서비스를 수행함.&lt;/li&gt;
&lt;li&gt;기능적 요약: &lt;b&gt;사용자 인터페이스 및 네트워크 서비스 제공&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>전공정리</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/104</guid>
      <comments>https://hu-studyrecord.tistory.com/104#entry104comment</comments>
      <pubDate>Tue, 21 Jan 2025 23:31:08 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Kotlin 프로젝트 시작하기</title>
      <link>https://hu-studyrecord.tistory.com/103</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;프로젝트 생성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;IntelliJ에서 Kotlin을 사용하기 위해 프로젝트를 생성해야한다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qb3js/btsLTaQofCS/iqFBQWzTKwGsnK3OAFolYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qb3js/btsLTaQofCS/iqFBQWzTKwGsnK3OAFolYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qb3js/btsLTaQofCS/iqFBQWzTKwGsnK3OAFolYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqb3js%2FbtsLTaQofCS%2FiqFBQWzTKwGsnK3OAFolYk%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;624&quot; height=&quot;572&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;644&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;size14&quot;&gt;새 프로젝트를 생성할때, 구성은 위와 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;제너레이터는 Jakarta EE로 하며, 웹으로 띄울 것이기 때문에 템플릿은 Web Application으로 변경한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/60&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hu-studyrecord.tistory.com/60&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737360745556&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] Jakarta EE 사용하기&quot; data-og-description=&quot;https://hu-studyrecord.tistory.com/56&amp;nbsp;[WAS] Apache-Tomcat 설치하기설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해&quot; data-og-host=&quot;hu-studyrecord.tistory.com&quot; data-og-source-url=&quot;https://hu-studyrecord.tistory.com/60&quot; data-og-url=&quot;https://hu-studyrecord.tistory.com/60&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bQ84nU/hyX4u9awGg/9Or2LcTMoB5VxkYUu3PZfk/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/wR0Wc/hyX4mJ2QeA/KF5cwZPsgX0l6lKj5lpkQ1/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/djsQXq/hyX4sDt6sK/J0lxhCcQ521DExVnpqmsk0/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/60&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hu-studyrecord.tistory.com/60&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bQ84nU/hyX4u9awGg/9Or2LcTMoB5VxkYUu3PZfk/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/wR0Wc/hyX4mJ2QeA/KF5cwZPsgX0l6lKj5lpkQ1/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/djsQXq/hyX4sDt6sK/J0lxhCcQ521DExVnpqmsk0/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171');&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] Jakarta EE 사용하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://hu-studyrecord.tistory.com/56&amp;nbsp;[WAS] Apache-Tomcat 설치하기설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hu-studyrecord.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이전 포스팅을 보면 Java 프로젝트 생성과 동일하며 언어만 Kotlin으로 변경하면 되는 것을 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;프로젝트 변환&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;만약, Java로 만든 프로젝트를 Kotlin 으로 변환하고 싶다면 IntelliJ의 기능을 사용할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;완벽히 변환해주지는 않지만 초기 세팅에 도움을 준다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;814&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfVbN8/btsLUrKctko/zn81aXijs2Lp6rxtBQHerK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfVbN8/btsLUrKctko/zn81aXijs2Lp6rxtBQHerK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfVbN8/btsLUrKctko/zn81aXijs2Lp6rxtBQHerK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfVbN8%2FbtsLUrKctko%2Fzn81aXijs2Lp6rxtBQHerK%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;398&quot; height=&quot;627&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;814&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;변환을 원하고자 하는 파일을 우클릭하면 위와같이 Java 파일을 Kotlin 파일로 변환이 뜨는데 이 기능을 활용하면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Kotlin의 경우 Lombok을 사용할 수 없어서 단순히 변환하는데 끝나는게 아니라 설정에 맞는 변경이 필요하다&lt;/p&gt;</description>
      <category>Kotlin</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/103</guid>
      <comments>https://hu-studyrecord.tistory.com/103#entry103comment</comments>
      <pubDate>Mon, 20 Jan 2025 16:48:43 +0900</pubDate>
    </item>
    <item>
      <title>[마이그레이션] Kotlin vs Java</title>
      <link>https://hu-studyrecord.tistory.com/102</link>
      <description>&lt;p data-ke-size=&quot;size14&quot;&gt;한달동안 Java로 프로젝트를 진행했으며, 본 프로젝트를 Kotlin으로 마이그레이션 하기 위해서는&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;언어에 대한 이해를 해야, 이후 프로젝트에서도 원활한 진행이 될 것이라 생각한다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Kotlin 기본 문법에 대해서 학습하던 중, Kotlin이 Java보다는 Js? 와 비슷하다는 생각이 들었고&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그렇다면 Kotlin과 Java와의 차이가 무엇인지 살펴보려고 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Kotlin vs Java&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;함수형 프로그래밍 지원 언어로 순수 함수를 작성하여 프로그래밍 부작용을 줄이는 프로그래밍 기법으로 람다식, 고차함수를 사용한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Kotlin은 다중패러다임 언어로 함수형 프로그래밍과 객체 지향 프로그래밍을 모두 지원하여 Java와 100%로 호환이 가능해 기존 자바 코드를 활용할 수도 있다&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코틀린은 자바보다 간결하며, 직관적이다
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수 선언시, 타입 추론을 사용하여 데이터 타입을 명시적으로 선언해주지 않아도 된다&lt;/li&gt;
&lt;li&gt;코드의 양이 줄어들며 데이터 클래스, 스마트캐스트, 확장함수, 람다 표현식 등으로 생산성을 높일 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Null 안정성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kotlin은 Null 포인터 예외 방지를 위한 지원을 제공한다&lt;/li&gt;
&lt;li&gt;타입 뒤에 '?'를 붙여 Null이 될 수 있는 타입을 명시적으로 표시할 수 있어 NullPointerException 발생 가능성이 줄어든다&lt;/li&gt;
&lt;/ul&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;스마트 캐스팅을 통해 타입 검사 후, 자동으로 타입 변환이 가능하다&lt;/li&gt;
&lt;/ul&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;코루틴을 사용하여 간결하고 효율적인 코드 작성이 가능하다&lt;/li&gt;
&lt;li&gt;코루틴은 코루틴이 시작된 스레드를 중단하지 않으면서 비동기적으로 실행되는 코드이다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Java는 다양한 정보를 가지고 오랜 역사를 지녀 안정성과 유지보수가 중요한 대규모 엔터프라이즈 애플리케이션에 사용한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Kotlin의 경우는 Android 개발에 최적화 되어있으며 코루틴을 통한 비동기 프로그래밍을 지녔다는 것이 장점이라고 볼 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;언어 선택에 대해서는 프로젝트의 요구사항에 따라 달라지겠지만 이렇게 새로운 언어를 알아가는 것도 흥미로운 것 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;각자의 장단점을 잘 활용해봐야겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Kotlin</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/102</guid>
      <comments>https://hu-studyrecord.tistory.com/102#entry102comment</comments>
      <pubDate>Thu, 16 Jan 2025 23:41:58 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Cannot read properties of undefined (reading 'maps')</title>
      <link>https://hu-studyrecord.tistory.com/101</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Error&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;카카오 맵 API를 불러와서 사용하던 중 다음과 같은 오류가 발생했다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-16 오전 12.04.24.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdjw1M/btsLOscxEAK/r0LpOm3RkW7yLCSlTB465K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdjw1M/btsLOscxEAK/r0LpOm3RkW7yLCSlTB465K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdjw1M/btsLOscxEAK/r0LpOm3RkW7yLCSlTB465K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcdjw1M%2FbtsLOscxEAK%2Fr0LpOm3RkW7yLCSlTB465K%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;1284&quot; height=&quot;400&quot; data-filename=&quot;스크린샷 2025-01-16 오전 12.04.24.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;도메인 등록도 해주었으며, API에 해당하는 key값도 불러왔지만 수정해도 동일한 오류가 발생했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;API 연결이 잘 되지 않는 것 같아 다시 해당 사이트를 들어가 확인해보았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://developers.kakao.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developers.kakao.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736953613450&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;Kakao Developers&quot; data-og-description=&quot;카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.&quot; data-og-host=&quot;developers.kakao.com&quot; data-og-source-url=&quot;https://developers.kakao.com/&quot; data-og-url=&quot;https://developers.kakao.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bQkLRq/hyX0ohQVnP/D28DWzHit8KAgUIwfk9xAK/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/cNbLCs/hyX0yxYAe5/zf2dHlAdFG8Z4KhtZLK0vk/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000,https://scrap.kakaocdn.net/dn/bCw84e/hyX4nheXLi/541yw17U8LZqF8ljUzDXR0/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000&quot;&gt;&lt;a href=&quot;https://developers.kakao.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.kakao.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bQkLRq/hyX0ohQVnP/D28DWzHit8KAgUIwfk9xAK/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/cNbLCs/hyX0yxYAe5/zf2dHlAdFG8Z4KhtZLK0vk/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000,https://scrap.kakaocdn.net/dn/bCw84e/hyX4nheXLi/541yw17U8LZqF8ljUzDXR0/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_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;Kakao Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.kakao.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;해결&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-16 오전 12.07.51.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZPfxA/btsLONgrqrs/eWUVV7qrQ2o7neZUYnoq0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZPfxA/btsLONgrqrs/eWUVV7qrQ2o7neZUYnoq0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZPfxA/btsLONgrqrs/eWUVV7qrQ2o7neZUYnoq0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZPfxA%2FbtsLONgrqrs%2FeWUVV7qrQ2o7neZUYnoq0K%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;451&quot; height=&quot;269&quot; data-filename=&quot;스크린샷 2025-01-16 오전 12.07.51.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;550&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;원인은 너무 허무하게도 카카오맵 활성화를 하지 않은 것이였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;생성하면 자동으로 실행이 된다고 생각했던 것이 문제였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;앞으로는 API나 다른 것을 사용하게 될때, 꼭 기본적인 것부터 넘어가지 말고 확인해봐야겠다&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/101</guid>
      <comments>https://hu-studyrecord.tistory.com/101#entry101comment</comments>
      <pubDate>Wed, 15 Jan 2025 23:55:37 +0900</pubDate>
    </item>
    <item>
      <title>[VMware] 설치 및 실행</title>
      <link>https://hu-studyrecord.tistory.com/100</link>
      <description>&lt;p data-ke-size=&quot;size14&quot;&gt;가상환경에 우분투를 설치하였고 Kotlin 설치, 실행을 진행하였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Kotliin 설치 전 가상환경 설정에 대한 내용을 다루려고 한다&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;VMware 설치&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;우선, VMware 설치가 필요하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;아래의 사이트에서 로그인을 하고 Download를 진행해주면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736863326328&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;Desktop Hypervisor Solutions | VMware&quot; data-og-description=&quot;VMware Workstation and VMware Fusion desktop hypervisors are the industry leaders in local virtualization. Learn how VMware&amp;rsquo;s local virtualization solutions provide an easier way to build, test and deliver any app for any device or cloud.&quot; data-og-host=&quot;www.vmware.com&quot; data-og-source-url=&quot;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&quot; data-og-url=&quot;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cF0lAy/hyX0pU7rTc/4UcTL7bvFvnGk1ExxbEPl1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cF0lAy/hyX0pU7rTc/4UcTL7bvFvnGk1ExxbEPl1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&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;Desktop Hypervisor Solutions | VMware&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;VMware Workstation and VMware Fusion desktop hypervisors are the industry leaders in local virtualization. Learn how VMware&amp;rsquo;s local virtualization solutions provide an easier way to build, test and deliver any app for any device or cloud.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.vmware.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://foxydog.tistory.com/176&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://foxydog.tistory.com/176&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736863628413&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;VMware Workstation Pro 17 무료 다운로드(가입 필수) 및 설치&quot; data-og-description=&quot;오랜만에 VMware Workstation Pro 새로운 버전이 나온 게 있나 싶어서 공식 홈페이지 접근을 해보니 무언가 바뀌어 있었습니다. 바로 브로드컴「Broadcom」이라는 반도체 기업이 VMware 회사를 인수했다는&quot; data-og-host=&quot;foxydog.tistory.com&quot; data-og-source-url=&quot;https://foxydog.tistory.com/176&quot; data-og-url=&quot;https://foxydog.tistory.com/176&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1uPsg/hyX0oICmYi/SOUqPao9rkdnCn5sRmD8kk/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/h7lq7/hyX0yLecJl/x4frK8ynBVeIReDxaV0g3k/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bsUyJj/hyX0uhMSj3/TpjzR0bMMWHai4bExEJ660/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://foxydog.tistory.com/176&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://foxydog.tistory.com/176&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1uPsg/hyX0oICmYi/SOUqPao9rkdnCn5sRmD8kk/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/h7lq7/hyX0yLecJl/x4frK8ynBVeIReDxaV0g3k/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bsUyJj/hyX0uhMSj3/TpjzR0bMMWHai4bExEJ660/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&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;VMware Workstation Pro 17 무료 다운로드(가입 필수) 및 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오랜만에 VMware Workstation Pro 새로운 버전이 나온 게 있나 싶어서 공식 홈페이지 접근을 해보니 무언가 바뀌어 있었습니다. 바로 브로드컴「Broadcom」이라는 반도체 기업이 VMware 회사를 인수했다는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;foxydog.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;자세한 설치 내용은 위의 블로그에서 참고하였다&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VMWare은 컴퓨터 가상화 소프트웨어 등 각종 제품을 생산하는 기업이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;여기서, 가상화란 무엇일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;가상화는 하나의 실물 컴퓨팅 자원을 여러 개인 것처럼 가상으로 쪼개서 사용하거나 여러 개의 실물 컴퓨팅 자원들을 묶어서 하나의 자원처럼 사용하는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;따라서, 현재 내가 사용하고 있는 컴퓨터는 Window 이지만 VMWare와 같은 프로그램을 사용하면 우분투로도 접속이 가능한 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;하나의 컴퓨터에서 동작하지만 가상으로 쪼개서 사용이 가능하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;VMWare 실행&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VMWare 설치가 완료되면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOaLbc/btsLMGhQ2D6/kSPfc4j95hJI8G6tBxn0e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOaLbc/btsLMGhQ2D6/kSPfc4j95hJI8G6tBxn0e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOaLbc/btsLMGhQ2D6/kSPfc4j95hJI8G6tBxn0e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOaLbc%2FbtsLMGhQ2D6%2FkSPfc4j95hJI8G6tBxn0e1%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;424&quot; height=&quot;169&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;274&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;위와 같이 Create a New Virtual Machine 이 뜨게 되고 모두 next를 눌러 원하는 설정에 맞춰 새로운 가상 환경을 생성한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그전에, 추후 우분투 서버를 넣어줘야 하므로 아래의 사이트에서 본인 컴퓨터에 맞는 다운로드를 진행해야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ubuntu.com/download/desktop&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ubuntu.com/download/desktop&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736864451134&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;https://ubuntu.com/download/desktop&quot; data-og-description=&quot;&quot; data-og-host=&quot;ubuntu.com&quot; data-og-source-url=&quot;https://ubuntu.com/download/desktop&quot; data-og-url=&quot;https://ubuntu.com/download/desktop&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/download/desktop&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ubuntu.com/download/desktop&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;https://ubuntu.com/download/desktop&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ubuntu.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;size14&quot;&gt;설치 및 실행이 완료되면, Virtual Machines 디렉토리가 생성되는데 위에서 다운받은 우분투 서버를 해당 경로에 넣어주고 사용한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이 경로는 Virtual Machine 설치 과정에서 Location 설정을 통해 생성된 것이다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TQkhC/btsLN9Qw2XI/LsfmNbknFTQIKGgyAuEU7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TQkhC/btsLN9Qw2XI/LsfmNbknFTQIKGgyAuEU7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TQkhC/btsLN9Qw2XI/LsfmNbknFTQIKGgyAuEU7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTQkhC%2FbtsLN9Qw2XI%2FLsfmNbknFTQIKGgyAuEU7K%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;399&quot; height=&quot;333&quot; data-origin-width=&quot;596&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;size14&quot;&gt;그리고, 생성한 가상환경 설정에서 ISO image file 경로를 맞춰준다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FG5HW/btsLMsxwhx0/JlWnP6jAOJN9Vh1sA2gkk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FG5HW/btsLMsxwhx0/JlWnP6jAOJN9Vh1sA2gkk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FG5HW/btsLMsxwhx0/JlWnP6jAOJN9Vh1sA2gkk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFG5HW%2FbtsLMsxwhx0%2FJlWnP6jAOJN9Vh1sA2gkk1%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;591&quot; height=&quot;204&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이 과정이 완료되면, VMWare가 무사히 실행되는 모습을 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;VMWare 실행 오류&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;만약, 실행이 잘 되지 않는다면 작업 관리자에서 VMWare에 해당하는 내용을 모두 끄고 다시 시도하기를 권한다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;그리고 네트워크가 되지 않는다면 작업관리자에서 VMware NAT, DHCP에 해당하는 내용을 재시작을 진행하면 된다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;본 과정으로 윈도우에서도 손쉽게 우분투를 사용할 수 있게 되었다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;가상화를 통한 개발이 아닌 듀얼부팅을 사용해서 개발한 경험이 있다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;그때는 윈도우, 우분투를 사용하기 위해 꼭 컴퓨터를 껐다켰다 했었는데 이렇게 가상화 설정을 해주고 나니 이동이 자유로워져서 편한 것 같다&lt;/p&gt;</description>
      <category>VMware</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/100</guid>
      <comments>https://hu-studyrecord.tistory.com/100#entry100comment</comments>
      <pubDate>Tue, 14 Jan 2025 23:30:20 +0900</pubDate>
    </item>
    <item>
      <title>[SpringBoot] Mybatis vs JPA</title>
      <link>https://hu-studyrecord.tistory.com/95</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Mybatis&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL Mapper 기술 제공&lt;/li&gt;
&lt;li&gt;JDBC 프로그래밍을 단순화하여, 불필요한 Boilerplate 코드 제거하고, Java 소스 코드에서 SQL 문을 분리하여 별도의 XML 저장하고, 이 둘을 서로 연결시켜주는 기능 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Mybatis 특징&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MyBatis 내부에서 Boilerplate 코드가 구현되어 있으며, Java메소드와 SQL간 매핑을 해줌&lt;/li&gt;
&lt;li&gt;SQL문을 Java 코드에서 분리하여 관리가 편함(분리된 SQL문을 MyBatis가 찾아서 실행)&lt;/li&gt;
&lt;li&gt;동적인 SQL 생성 기능을 제공하여 파라미터에 따라 다른 SQL문 동적 생성 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;MyBatis 장단점&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;장점 : SQL직접 제어, 학습 용이성&lt;/li&gt;
&lt;li&gt;단점 : CRUD 단순 작업에 반복 수작업 필요, 데이터베이스에 종속적&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;JPA&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ORM 기술 제공(개발자가 객체 지향 프로그래밍 언어에서 사용하는 객체 모델과 관계형 데이터베이스 테이블 간의 매핑으로 자동으로 처리)&lt;/li&gt;
&lt;li&gt;Java 객체와 관계형 데이터베이스 간의 매핑을 위한 API&lt;/li&gt;
&lt;li&gt;Java 개발자가 객체지향 관점에서 개발할 수 있도록 하여 DB와 Java간의 불일치 해소&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;JPA 특징&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MyBatis와 다르게 SQL 문의 작성이 불필요하며 ORM 내부적으로 java메소드에 적합한 SQL문이 자동으로 생성되어 실행&lt;/li&gt;
&lt;li&gt;개발자는 클래스만 만들어서 사용하며, ORM프레임워크(대표적으로 hiberate)가 자동으로 관련된 SQL생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;JPA 장단점&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;장점 : 표준화된 인터페이스(JPA 표준을 따름), 자동 매핑으로 개발 및 유지보수성 향상, 객체 지향적인 접근(테이블 간의 연관관계와 객체간 연관 관계 쉽게 다룰 수 있음), DBMS에 독립적&lt;/li&gt;
&lt;li&gt;단점 : 높은 학습곡선, 복잡한 SQL생성 어려움&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/95</guid>
      <comments>https://hu-studyrecord.tistory.com/95#entry95comment</comments>
      <pubDate>Fri, 13 Dec 2024 23:03:50 +0900</pubDate>
    </item>
    <item>
      <title>[회고] 1차 프로젝트를 마치며</title>
      <link>https://hu-studyrecord.tistory.com/94</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래머스 부트캠프를 들으며, 1차 프로젝트를 마쳤다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1차 프로젝트는 기본적인 프로젝트 구조를 익히며 팀원과 소통을 위한 방안을 배웠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SpringBoot 프레임워크를 사용하였으며 MariaDB를 연결하여 API설계를 진행하였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 MyBatis 프레임워크를 사용하며 XML 파일을 작성해보며 데이터 처리 과정을 익히는 활동이였다&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;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 작성하면서 제일 기억에 남는 방안은 아래와 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mapper.xml을 작성하면서 아래의 insert 문을 넣자마자 pid, cid를 반환 하고자 했고, join을 사용하거나 SQL문을 또 써야되는건가 고민을 했다&lt;/p&gt;
&lt;pre class=&quot;dust&quot;&gt;&lt;code&gt;&amp;lt;insert id=&quot;purchase_info&quot; parameterType=&quot;purchase&quot;&amp;gt;
	insert into purchase(cid, sst, zip, addr, st)
	values (#{cid}, #{sst}, #{zip}, #{addr}, #{st})
&amp;lt;/insert&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;그런데, keyProperty를 사용하면 그 문제를 해결할 수 있었다&lt;/p&gt;
&lt;pre class=&quot;dust&quot;&gt;&lt;code&gt;&amp;lt;insert id=&quot;purchase_info&quot; parameterType=&quot;purchase&quot; useGeneratedKeys=&quot;true&quot; keyProperty=&quot;pid&quot;&amp;gt;
    insert into purchase(cid, sst, zip, addr, st)
    values (#{cid}, #{sst}, #{zip}, #{addr}, #{st})
&amp;lt;/insert&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 적용시킬 수 있다&lt;/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;h4 data-ke-size=&quot;size20&quot;&gt;결론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 팀원들을 만나 성공적으로 1차 프로젝트를 끝낼 수 있었으며 혼자 고민하는 것이 아닌 다같이 오류를 공유하고 해결하는 과정에서 좋은 공부를 했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 개발 중 테이블을 수정하고 세세하게 정해야하는 것이 많았었다(예를 들어, session, cookie, localstorage사용 비교)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기획을 더 세세하게 해야됨의 중요성을 알았고 앞으로의 프로젝트에서는 좀 더 깊이있는 고민이 필요하다고 생각했다&lt;/p&gt;</description>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/94</guid>
      <comments>https://hu-studyrecord.tistory.com/94#entry94comment</comments>
      <pubDate>Tue, 10 Dec 2024 23:47:10 +0900</pubDate>
    </item>
    <item>
      <title>[Error] 인수타입 오류(JavaScript)</title>
      <link>https://hu-studyrecord.tistory.com/93</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Error&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트 진행에서 JSP파일 내의 JavaScript 코드에서 오류가 발생했다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGhahH/btsLj2YGeDP/tqPOeb9qRKpCvi6pDt6zk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGhahH/btsLj2YGeDP/tqPOeb9qRKpCvi6pDt6zk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGhahH/btsLj2YGeDP/tqPOeb9qRKpCvi6pDt6zk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGhahH%2FbtsLj2YGeDP%2FtqPOeb9qRKpCvi6pDt6zk0%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;528&quot; height=&quot;401&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;requestData에 Json형식으로 데이터를 보내려고 할때 인수타입을 매개변수 타입에 할당할 수 없다는 오류였다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Solution&lt;/h4&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;const jsonData = JSON.stringify(requestData);
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;XMLHttpRequest.send() 메서드로 데이터를 보낼 때 데이터 타입이 올바르지 않을 경우 발생하는 오류였고, JSON.stringify()로 데이터를 문자열 형태로 변환하니 정상적으로 해결되었다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Check&lt;/h4&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;특히 JavaScript를 사용하며 server로 데이터를 보낼때는 그에 맞는 형식을 고려해줘야한다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/93</guid>
      <comments>https://hu-studyrecord.tistory.com/93#entry93comment</comments>
      <pubDate>Mon, 9 Dec 2024 23:53:19 +0900</pubDate>
    </item>
    <item>
      <title>[Error] JS 처음 로딩 적용 안됨</title>
      <link>https://hu-studyrecord.tistory.com/92</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Error 사항&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SpringBoot에서 Mybatis를 활용하여 회원가입, 로그인 로직을 구현하면서 JSP를 사용하였다&lt;/li&gt;
&lt;li&gt;저장된 정보로 로그인을 진행할경우, 정보가 있거나 없다면 alert로 모두 표시되도록 구현하고자 하였다&lt;/li&gt;
&lt;li&gt;하지만, 처음 로딩에서 alert가 뜨지않고 그 어느것도 적용하지 못한채 새로고침 화면마냥 사라지는 문제가 발생했다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;해결&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;여기서 form 안에 submit 역할을 하는 버튼을 눌렀어도 새로 실행하지 않게 하고 싶다면 아래의 코드를 추가해야한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1733493155371&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;event.preventDefault()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://programming119.tistory.com/100&quot;&gt;https://programming119.tistory.com/100&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1733493167805&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;[JS] event.preventDefault() 간단 설명  / preventDefault란?&quot; data-og-description=&quot;preventDefault 란? a 태그나 submit 태그는 누르게 되면 href 를 통해 이동하거나 , 창이 새로고침하여 실행됩니다. preventDefault 를 통해 이러한 동작을 막아줄 수 있습니다. 주로 사용되는 경우는 1. a 태&quot; data-og-host=&quot;programming119.tistory.com&quot; data-og-source-url=&quot;https://programming119.tistory.com/100&quot; data-og-url=&quot;https://programming119.tistory.com/100&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cpiHWG/hyXKrLeawD/HgCk8LY9YOKjzrYrhQfOw1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/GYckK/hyXKvmyhWb/jQic4uKZxkVx258BrKUUy1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dE6igz/hyXKj7upip/78jSZZmKz8D4T9MK5kJuTk/img.png?width=559&amp;amp;height=368&amp;amp;face=0_0_559_368&quot;&gt;&lt;a href=&quot;https://programming119.tistory.com/100&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programming119.tistory.com/100&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cpiHWG/hyXKrLeawD/HgCk8LY9YOKjzrYrhQfOw1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/GYckK/hyXKvmyhWb/jQic4uKZxkVx258BrKUUy1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dE6igz/hyXKj7upip/78jSZZmKz8D4T9MK5kJuTk/img.png?width=559&amp;amp;height=368&amp;amp;face=0_0_559_368');&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;[JS] event.preventDefault() 간단 설명  / preventDefault란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;preventDefault 란? a 태그나 submit 태그는 누르게 되면 href 를 통해 이동하거나 , 창이 새로고침하여 실행됩니다. preventDefault 를 통해 이러한 동작을 막아줄 수 있습니다. 주로 사용되는 경우는 1. a 태&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programming119.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 블로그를 참고하였으며, 쉽게 말해서 창이 새로고침하는 것을 방지하는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1733493289648&quot; class=&quot;javascript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;document.querySelectorAll('.quick-link').forEach(link =&amp;gt; {
    link.onclick = function (event) {
        event.preventDefault(); // 기본 동작 막기

        const request = new XMLHttpRequest();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이런식으로 추가하여 진행하였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JS는 Java API 개발과 다르게 오류메시지가 뜨지 않지만 오류이거나 원하는데로 동작하지 않고 오타도 쉽게 볼 수 없어서 Java보다 사용하기가 어려운 것 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 많은 코드를 통해 오류를 해결하는 연습이 필요하다&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/92</guid>
      <comments>https://hu-studyrecord.tistory.com/92#entry92comment</comments>
      <pubDate>Fri, 6 Dec 2024 22:56:18 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Cause: java.sql.SQLSyntaxErrorException</title>
      <link>https://hu-studyrecord.tistory.com/91</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Error&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;회원 가입 로직에서 zip을 넣는 과정 중, 분명 JS에도 console로 출력되고 Java에서도 출력되지만 SQL에는 insert되지 않는 문제가 발생했다&lt;/li&gt;
&lt;li&gt;자세한 오류 메시지는 다음과 같다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: (conn=1102) Data too long for column 'zip' at row 1
### The error may exist in file [C:\\Java\\Project\\NBE2-3-1-team2\\build\\resources\\main\\mappers\\customer_mapper.xml]
### The error may involve com.example.project01.mapper.CustomerMapper.customer_register-Inline
### The error occurred while setting parameters
### SQL: insert into customer(email, pwd, addr, zip)         values(?, password(?), ?, ?)
### Cause: java.sql.SQLSyntaxErrorException: (conn=1102) Data too long for column 'zip' at row 1
; bad SQL grammar []] with root cause

java.sql.SQLSyntaxErrorException: (conn=1102) Data too long for column 'zip' at row 1
	at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:289) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:378) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.message.ClientMessage.readPacket(ClientMessage.java:189) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.client.impl.StandardClient.readPacket(StandardClient.java:1235) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.client.impl.StandardClient.readResults(StandardClient.java:1174) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.client.impl.StandardClient.readResponse(StandardClient.java:1093) ~[mariadb-java-client-3.4.1.jar:na]
	at org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:1017) ~[mariadb-java-client-3.4.1.jar:na]
&lt;/code&gt;&lt;/pre&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;SQLSyntaxErrorException 오류로 zip의 길이가 맞지 않는 오류였다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;해결&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MariaDB 자체에 테이블을 생성할 때, zip의 경우 5글자로 제약사항을 걸었지만 거기에 맞지 않게 3,4 글자를 넣어서 발생하는 문제였다&lt;/li&gt;
&lt;li&gt;JS에서도 5글자를 입력하도록 처리하고 오류가 날 시, 재입력 하도록 변경하였다&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;프로젝트를 진행하며, 중간에 테이블을 바꾸는 경우가 있었는데 그 과정에서 놓쳤던 부분이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음부터 자세하게 테이블을 작성해야한다고 느꼈으며 조금더 구체적이고 체계적인 로직을 짜도록 노력해야겠다&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/91</guid>
      <comments>https://hu-studyrecord.tistory.com/91#entry91comment</comments>
      <pubDate>Thu, 5 Dec 2024 23:45:42 +0900</pubDate>
    </item>
    <item>
      <title>[Error] beans.factory.BeanCreationException</title>
      <link>https://hu-studyrecord.tistory.com/90</link>
      <description>&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;pre id=&quot;code_1733317938730&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-12-03T15:25:01.063+09:00 ERROR 48416 --- [project01] [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [C:\Java\Project\NBE2-3-1-team2\build\resources\main\mappers\customer_mapper.xml]'
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1351) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1181) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.0.jar:6.2.0]&lt;/code&gt;&lt;/pre&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;MaBatis에서는 Mapper XMl 파일의 namespace 속성이 인터페이스 이름과 정확하게 일치하여야 하는데 namespace 를 작성하지 않아서 발생하는 오류였다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;com.example.project01.mapper.ProductMapper&quot;&amp;gt;
    &amp;lt;select id=&quot;product_list&quot; resultType=&quot;product&quot;&amp;gt;
        select pid, img, name, cat, stk, price
        from product
    &amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;위와 같이 namespace를 추가해주니 동작하는 모습을 확인할 수 있었다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/90</guid>
      <comments>https://hu-studyrecord.tistory.com/90#entry90comment</comments>
      <pubDate>Wed, 4 Dec 2024 22:14:05 +0900</pubDate>
    </item>
    <item>
      <title>[Project] 프로젝트 기획하기</title>
      <link>https://hu-studyrecord.tistory.com/89</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 진행하면서, 다른 팀원들과 웹 페이지를 어떤식으로 만들 수 있을지 상의를 진행하였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PM은 프로젝트의 전과정을 관리하고, IT 프로젝트의 전과정을 파악할 수 있어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에, 프로젝트를 하며 요구하는 내용을 정리하고 기획해보았다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 목표 설정&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 사이트의 제작 목적&lt;/li&gt;
&lt;li&gt;사용자에게 제공하려는 핵심 서비스&lt;/li&gt;
&lt;li&gt;주요 기능&lt;/li&gt;
&lt;li&gt;예상 문제점&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 요구사항 정의서 작성&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mMMck/btsK6MIbOuy/3p0jjkZdYUduqxy7H79aW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mMMck/btsK6MIbOuy/3p0jjkZdYUduqxy7H79aW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mMMck/btsK6MIbOuy/3p0jjkZdYUduqxy7H79aW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmMMck%2FbtsK6MIbOuy%2F3p0jjkZdYUduqxy7H79aW0%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;675&quot; height=&quot;60&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트 목표, 기능, 제약 사항 제시&lt;/li&gt;
&lt;li&gt;Google Docs를 활용하여 팀원 다같이 볼 수 있도록 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. IA 구성&lt;/h4&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;Google Docs를 활용하여 PPT에 팀원 다같이 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. WireFrame&lt;/h4&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;Google Docs를 활용하여 PPT에 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. 시스템 구성도&lt;/h4&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;h4 data-ke-size=&quot;size20&quot;&gt;6. 역할 분담&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기능 및 개발 수준 선정&lt;/li&gt;
&lt;li&gt;기획, 디자인, 개발 등으로 분류 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 프로젝트의 기획의 위와 같이 6가지의 사항을 따랐다&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;작성한 구체적인 내용은 추후에 Git에 올릴 예정이다.&lt;/p&gt;</description>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/89</guid>
      <comments>https://hu-studyrecord.tistory.com/89#entry89comment</comments>
      <pubDate>Tue, 3 Dec 2024 20:39:14 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ + Git] IntelliJ에 Git 연동하기</title>
      <link>https://hu-studyrecord.tistory.com/88</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 생성된 레포지토리 가져와서 Git 연동하기&lt;/h4&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://brunch.co.kr/@mystoryg/168&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://brunch.co.kr/@mystoryg/168&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1733223928769&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 GitHub 연동&quot; data-og-description=&quot;IntelliJ와 GitHub를 연동하면 GitHub Desktop이나 SourceTree와 같은 Git GUI 없이 쉽게 Git을 사용할 수 있다. Version : IntelliJ(2021.3.2), Git(2.33.0)OS : Windows 10, Windows 11 1. Repository 생성 먼저 IntelliJ와 연동할 GitHub &quot; data-og-host=&quot;brunch.co.kr&quot; data-og-source-url=&quot;https://brunch.co.kr/@mystoryg/168&quot; data-og-url=&quot;https://brunch.co.kr/@mystoryg/168&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ZfUr6/hyXGItJNKk/kGqooVl9o8PlaCsHk130e1/img.png?width=1280&amp;amp;height=881&amp;amp;face=0_0_1280_881,https://scrap.kakaocdn.net/dn/cfNWzC/hyXGCUA33Q/HEmUFMAVAeiBi6xfhYxtsK/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/bdyXa7/hyXGNhu7yA/b68KmKlLe7oc1CvaRTPSM0/img.png?width=1161&amp;amp;height=1050&amp;amp;face=0_0_1161_1050&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@mystoryg/168&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://brunch.co.kr/@mystoryg/168&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ZfUr6/hyXGItJNKk/kGqooVl9o8PlaCsHk130e1/img.png?width=1280&amp;amp;height=881&amp;amp;face=0_0_1280_881,https://scrap.kakaocdn.net/dn/cfNWzC/hyXGCUA33Q/HEmUFMAVAeiBi6xfhYxtsK/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/bdyXa7/hyXGNhu7yA/b68KmKlLe7oc1CvaRTPSM0/img.png?width=1161&amp;amp;height=1050&amp;amp;face=0_0_1161_1050');&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 GitHub 연동&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;IntelliJ와 GitHub를 연동하면 GitHub Desktop이나 SourceTree와 같은 Git GUI 없이 쉽게 Git을 사용할 수 있다. Version : IntelliJ(2021.3.2), Git(2.33.0)OS : Windows 10, Windows 11 1. Repository 생성 먼저 IntelliJ와 연동할 GitHub&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;brunch.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 블로그를 참고 했으며 순서는 다음과 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIrCiZ/btsK6hond6t/BP4EPKG3Bsv6dLmMsKSpDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIrCiZ/btsK6hond6t/BP4EPKG3Bsv6dLmMsKSpDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIrCiZ/btsK6hond6t/BP4EPKG3Bsv6dLmMsKSpDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIrCiZ%2FbtsK6hond6t%2FBP4EPKG3Bsv6dLmMsKSpDk%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;510&quot; height=&quot;379&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Setting &amp;gt; GitHub에서 본인의 Github을 연결한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약, Git도 처음이라면 Git 설치를 우선적으로 진행해주어야한다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MXTro/btsK4xM2kW7/Kee1kEuUexavUpNKKAYxRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MXTro/btsK4xM2kW7/Kee1kEuUexavUpNKKAYxRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MXTro/btsK4xM2kW7/Kee1kEuUexavUpNKKAYxRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMXTro%2FbtsK4xM2kW7%2FKee1kEuUexavUpNKKAYxRk%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;655&quot; height=&quot;48&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, 메뉴창에서 VCS &amp;gt; Enable Version Control Integration에서 Git을 선택해주어야&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VCS 대신 Git으로 변경된것을 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DzALR/btsK6rjZicH/cGJax8YXKi9ZcC5O4IKM1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DzALR/btsK6rjZicH/cGJax8YXKi9ZcC5O4IKM1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DzALR/btsK6rjZicH/cGJax8YXKi9ZcC5O4IKM1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDzALR%2FbtsK6rjZicH%2FcGJax8YXKi9ZcC5O4IKM1K%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;247&quot; height=&quot;586&quot; data-origin-width=&quot;247&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;Git으로 변경되면 원격관리(Manage Remotes)에서 원하는 Repository URL을 넣어주면 해당 프로젝트와 연동되는 것을 확인할 수 있다.&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;2. master -&amp;gt; main 변경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, 나는 main이 아닌 master로 생성이 되어 master을 main으로 옮기고 master을 지우는 과정을 진행해주었다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@fairytale779/git-master-main-%ED%95%A9%EC%B9%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@fairytale779/git-master-main-%ED%95%A9%EC%B9%98%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1733224295724&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;git master main 합치기&quot; data-og-description=&quot;vscode로 작업하다가 뒤늦게 git 으로 연동시켜야겠다,해서 연동하다가 실수로 push 를 master로 해버렸고,현재 기본 브랜치는 main인데 쓸데없이 또다른 master라는 브랜치가 생겨버렸다.그래서 구글로&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@fairytale779/git-master-main-%ED%95%A9%EC%B9%98%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@fairytale779/git-master-main-합치기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXNLv0/hyXGySbf6y/EltsGHNVa5ti5DqscXmUN0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/dOnNqj/hyXGD0fZsh/ntU7rHAnKbdE4GOGebAzPK/img.jpg?width=3632&amp;amp;height=3632&amp;amp;face=0_0_3632_3632,https://scrap.kakaocdn.net/dn/bmcgJ6/hyXGACtLGy/jpurS5vxtbdD2p49HVBGPk/img.png?width=4164&amp;amp;height=471&amp;amp;face=0_0_4164_471&quot;&gt;&lt;a href=&quot;https://velog.io/@fairytale779/git-master-main-%ED%95%A9%EC%B9%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@fairytale779/git-master-main-%ED%95%A9%EC%B9%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXNLv0/hyXGySbf6y/EltsGHNVa5ti5DqscXmUN0/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/dOnNqj/hyXGD0fZsh/ntU7rHAnKbdE4GOGebAzPK/img.jpg?width=3632&amp;amp;height=3632&amp;amp;face=0_0_3632_3632,https://scrap.kakaocdn.net/dn/bmcgJ6/hyXGACtLGy/jpurS5vxtbdD2p49HVBGPk/img.png?width=4164&amp;amp;height=471&amp;amp;face=0_0_4164_471');&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;git master main 합치기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;vscode로 작업하다가 뒤늦게 git 으로 연동시켜야겠다,해서 연동하다가 실수로 push 를 master로 해버렸고,현재 기본 브랜치는 main인데 쓸데없이 또다른 master라는 브랜치가 생겨버렸다.그래서 구글로&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;해당 내용을 위의 블로그를 참고하였다&lt;/p&gt;
&lt;pre id=&quot;code_1733224286000&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git checkout master
git branch main master -f
git checkout main
git push origin main -f

git config --global init.defaultBranch main
git push origin --delete master&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. (+) 다시 clone을 진행하는 경우&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시, repository를 가져와야 되는 경우에러 이미 Git과 IntelliJ가 연동되어 있는 상황에는 clone만 진행하면 되는데&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://wookai.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wookai.tistory.com/5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1733224427130&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) Repository 내 깃헙에 가져오기 [clone]&quot; data-og-description=&quot;무단 침입 자, 다른 사람의 코드를 내 GitHub repository에 복사하여 작업하고 싶으면 어떻게할까? (물론 허락을 맡거나, 같이 수행하는 프로젝트여야한다... 상식적으로...ㅋㅋㅋ) REPOSITORY 자, 밑에는 &quot; data-og-host=&quot;wookai.tistory.com&quot; data-og-source-url=&quot;https://wookai.tistory.com/5&quot; data-og-url=&quot;https://wookai.tistory.com/5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/74KIY/hyXGGQejc5/yNcTis6RyCZrSncQz3ucM1/img.png?width=800&amp;amp;height=283&amp;amp;face=0_0_800_283,https://scrap.kakaocdn.net/dn/c4CSsG/hyXGMiAccF/sZfuB5h9QXNmpAPAko8BS0/img.png?width=800&amp;amp;height=283&amp;amp;face=0_0_800_283,https://scrap.kakaocdn.net/dn/k12yj/hyXGHVTWCV/lfpF31tHpZNVL6f5t7YxW0/img.png?width=989&amp;amp;height=484&amp;amp;face=0_0_989_484&quot;&gt;&lt;a href=&quot;https://wookai.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wookai.tistory.com/5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/74KIY/hyXGGQejc5/yNcTis6RyCZrSncQz3ucM1/img.png?width=800&amp;amp;height=283&amp;amp;face=0_0_800_283,https://scrap.kakaocdn.net/dn/c4CSsG/hyXGMiAccF/sZfuB5h9QXNmpAPAko8BS0/img.png?width=800&amp;amp;height=283&amp;amp;face=0_0_800_283,https://scrap.kakaocdn.net/dn/k12yj/hyXGHVTWCV/lfpF31tHpZNVL6f5t7YxW0/img.png?width=989&amp;amp;height=484&amp;amp;face=0_0_989_484');&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) Repository 내 깃헙에 가져오기 [clone]&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;무단 침입 자, 다른 사람의 코드를 내 GitHub repository에 복사하여 작업하고 싶으면 어떻게할까? (물론 허락을 맡거나, 같이 수행하는 프로젝트여야한다... 상식적으로...ㅋㅋㅋ) REPOSITORY 자, 밑에는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wookai.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. git bash 진입&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;3. git clone [url] 작성&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;4. (+) repository 팀원 추가 방법&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;543&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPlghB/btsK4wN9n3V/k4yfFXd0Oi6Dkiab5By001/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPlghB/btsK4wN9n3V/k4yfFXd0Oi6Dkiab5By001/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPlghB/btsK4wN9n3V/k4yfFXd0Oi6Dkiab5By001/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPlghB%2FbtsK4wN9n3V%2Fk4yfFXd0Oi6Dkiab5By001%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;616&quot; height=&quot;368&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;543&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Settings &amp;gt; Collaborators and teams &amp;gt; Add people 에 username 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;intelliJ를 통해 처음 Git과 연동하여 프로젝트를 진행하면서 연결 과정을 기술해보았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭐든 처음 설정과 시작이 어려운 것 같다&lt;/p&gt;</description>
      <category>Git</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/88</guid>
      <comments>https://hu-studyrecord.tistory.com/88#entry88comment</comments>
      <pubDate>Tue, 3 Dec 2024 20:17:37 +0900</pubDate>
    </item>
    <item>
      <title>[Server] REST/REST API/RESTful</title>
      <link>https://hu-studyrecord.tistory.com/87</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;REST&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고 HTTP Method(POST, GET, PUT, DELETE, PATCH 등)을 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것&lt;/li&gt;
&lt;li&gt;웹 서비스가 어떻게 동작해야 하는지에 대한 아키텍처 스타일&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;REST 구성요소&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;자원(Resource) : HTTP URI&lt;/li&gt;
&lt;li&gt;자원에 대한 행위(Verb) : HTTP Method&lt;/li&gt;
&lt;li&gt;자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;REST API&amp;nbsp;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;REST의 원리를 따르는 API&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;REST API 설계 원칙&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;URI는 동사보다 명사를, 대문자보다는 소문자를 사용한다&lt;/li&gt;
&lt;li&gt;마지막에 ' / ' 를 포함하지 않는다&lt;/li&gt;
&lt;li&gt;' _ ' 대신 ' - ' 을 사용한다&lt;/li&gt;
&lt;li&gt;파일확장자는 URI에 포함하지 않는다&lt;/li&gt;
&lt;li&gt;행위를 포함하지 않는&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;RESTful&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;REST의 원리를 따르는 시스템&lt;/li&gt;
&lt;li&gt;REST API의 설계 규칙을 올바르게 지킨 시스템&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>전공정리</category>
      <category>Rest</category>
      <category>restapi</category>
      <category>RESTful</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/87</guid>
      <comments>https://hu-studyrecord.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 28 Nov 2024 23:15:02 +0900</pubDate>
    </item>
    <item>
      <title>[Error] java.lang.NullPointerException</title>
      <link>https://hu-studyrecord.tistory.com/86</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;게시판에 mybatis를 활용하여 FileUpload를 하는 과정에서 to에 null 이 받아오는 문제가 발생했다&amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lPgm6/btsKYYJsvtK/Fcvr5WBpp0yNsbKb0CcHpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lPgm6/btsKYYJsvtK/Fcvr5WBpp0yNsbKb0CcHpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lPgm6/btsKYYJsvtK/Fcvr5WBpp0yNsbKb0CcHpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlPgm6%2FbtsKYYJsvtK%2FFcvr5WBpp0yNsbKb0CcHpk%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;676&quot; height=&quot;62&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;java.lang.NullPointerException: Cannot invoke &quot;com.example.board.dto.PdsTO.getSeq()&quot; because &quot;to&quot; is null
	at org.apache.jsp.WEB_002dINF.views.design_005fpds0.board_005fdelete1_jsp._jspService(board_005fdelete1_jsp.java:129) ~[na:na]
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:67) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar:6.0]
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:377) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이와 같은 문제가 2번이나 발생하였으며 모두 다른 해결방안을 사용하였다&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;dao에 해당 내용 추가&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;sas&quot;&gt;&lt;code&gt;String filename = pdsMapper.filename(to);
int result = pdsMapper.delete_ok(to);

if (filename!=null){
    new File(&quot;경로&quot;,filename).delete();
    // filename 오류(null로 나옴)
    System.out.println(pdsMapper.filename(to));
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Controller 에 to 담는 것 추가&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;model.addAttribute( &quot;flag&quot;, boardDAO.boardDeleteOK( to ) );
&lt;/code&gt;&lt;/pre&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;처음에는 DAO부분에 코드 순서가 잘못되어서 filename을 null이 된 상태로 받아오려고 한 문제였다&lt;/li&gt;
&lt;li&gt;두번째에는 Controller부분에 model.addAttribute 코드를 빼먹어서 to의 값을 담지 못하고 null만 출력하는 문제였다&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이러한 오류를 해결할때에는 로그를 출력해서 어느 부분에서 값이 null 이 나오는지 확인이 필요하며 해당 부분에 빠진 코드는 없는지, 순서는 잘못되지 않았는지 확인이 필요하다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <category>error</category>
      <category>NullPointerException</category>
      <category>SpringBoot</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/86</guid>
      <comments>https://hu-studyrecord.tistory.com/86#entry86comment</comments>
      <pubDate>Wed, 27 Nov 2024 16:50:30 +0900</pubDate>
    </item>
    <item>
      <title>[Error] The Unicode character [참] at code point</title>
      <link>https://hu-studyrecord.tistory.com/85</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JSP를 통해서 파일을 업로드하고, 다운 받는 로직을 구현하던 중 아래와 같은 오류가 발생했다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HSVDy/btsKW9Eu76W/haxsO53WpRgwEeSyfiP9KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HSVDy/btsKW9Eu76W/haxsO53WpRgwEeSyfiP9KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HSVDy/btsKW9Eu76W/haxsO53WpRgwEeSyfiP9KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHSVDy%2FbtsKW9Eu76W%2FhaxsO53WpRgwEeSyfiP9KK%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;914&quot; height=&quot;288&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1732605553579&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java.lang.IllegalArgumentException: The Unicode character [참] at code point [52,280] cannot be encoded as it is outside the permitted range of 0 to 255
	at org.apache.tomcat.util.buf.MessageBytes.toBytesSimple(MessageBytes.java:310) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.tomcat.util.buf.MessageBytes.toBytes(MessageBytes.java:283) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.http11.Http11OutputBuffer.write(Http11OutputBuffer.java:400) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.http11.Http11OutputBuffer.sendHeader(Http11OutputBuffer.java:379) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.http11.Http11Processor.writeHeaders(Http11Processor.java:1070) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1057) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:377) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.33.jar:10.1.33]
	at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:187) ~[tomcat-embed-core-10.1.33.jar:10.1.33]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;업로드까지는 무사히 되지만, 다운을 받는 과정에서 오류가 발생한 것이였다&lt;/li&gt;
&lt;li&gt;아래가 다음 사용한 코드이다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732605655091&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public ResponseEntity&amp;lt;Object&amp;gt; download(@RequestParam( &quot;file&quot; ) String strfile) throws IOException {
        String path = &quot;파일 경로&quot; + strfile;

        Path filePath = Paths.get(path);
        Resource resource = new InputStreamResource(Files.newInputStream( filePath ) );

        File file = new File( path );

        HttpHeaders headers = new HttpHeaders();
        headers.setContentDisposition( ContentDisposition.builder( &quot;attachment&quot;).filename( file.getName() ).build() );
        return new ResponseEntity&amp;lt;Object&amp;gt;( resource, headers, HttpStatus.OK );
    }&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드에는 이상이 없었지만, 업로드 하는 파일 명이 한글로 되어 있어서 인코딩 하지 못하여 받아오지 못하는 것이였다&lt;/li&gt;
&lt;li&gt;다시 영어로 파일 업로드, 다운로드를 진행한 결과 잘 작동하는 것을 확인할 수 있었다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zILja/btsKX8q8x5f/ALBGvkUnVhuvsiH5ejIvjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zILja/btsKX8q8x5f/ALBGvkUnVhuvsiH5ejIvjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zILja/btsKX8q8x5f/ALBGvkUnVhuvsiH5ejIvjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzILja%2FbtsKX8q8x5f%2FALBGvkUnVhuvsiH5ejIvjk%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;347&quot; height=&quot;131&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <category>encoding</category>
      <category>error</category>
      <category>jsp</category>
      <category>SpringBoot</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/85</guid>
      <comments>https://hu-studyrecord.tistory.com/85#entry85comment</comments>
      <pubDate>Tue, 26 Nov 2024 16:25:39 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Whitelabel Eorror Page</title>
      <link>https://hu-studyrecord.tistory.com/84</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;SpringBoot에서 JSP로 요청 처리를 진행하던 중 아래와 같은 오류가 떴다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;681&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PboYQ/btsKVBnWfcA/6EYqVzBFkERzBD3kqdAbx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PboYQ/btsKVBnWfcA/6EYqVzBFkERzBD3kqdAbx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PboYQ/btsKVBnWfcA/6EYqVzBFkERzBD3kqdAbx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPboYQ%2FbtsKVBnWfcA%2F6EYqVzBFkERzBD3kqdAbx0%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;681&quot; height=&quot;259&quot; data-origin-width=&quot;681&quot; data-origin-height=&quot;259&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;WEB-INF/views/내에 있는 jsp 파일들을 제대로 읽어오지 못하였고, 모든 페이지에 해당 오류가 발생했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오타도 없었으며 파일 구조, 의존성 수정, properties를 모두 알맞게 썼지만 여전히 같은 오류가 발생했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 10여분을 고민하던 중, 다른 파일 하나를 생성하자마자 갑자기 모든 오류가 해결되었다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이건 jsp 파일내에 out.println의 빨간글씨가 없어진 것을 보고 알았다)&lt;/p&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;의존성에서 Spring DevTools을 사용함에 따라 프로젝트가 완전히 빌드되지 않았고&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;</description>
      <category>SpringBoot/Error</category>
      <category>jsp</category>
      <category>whitelabel error page</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/84</guid>
      <comments>https://hu-studyrecord.tistory.com/84#entry84comment</comments>
      <pubDate>Mon, 25 Nov 2024 22:54:42 +0900</pubDate>
    </item>
    <item>
      <title>[Spring Framework] 동작 과정</title>
      <link>https://hu-studyrecord.tistory.com/83</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;805&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M9Ylv/btsKT8FRAOB/3XovIblLQU6lzBsub1MCSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M9Ylv/btsKT8FRAOB/3XovIblLQU6lzBsub1MCSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M9Ylv/btsKT8FRAOB/3XovIblLQU6lzBsub1MCSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM9Ylv%2FbtsKT8FRAOB%2F3XovIblLQU6lzBsub1MCSk%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;1384&quot; height=&quot;805&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;805&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 클라이넌트가 보낸 HTTP 요청을 DispatcherServlet이 web.xml에 등록된 내용을 토대로 가로챈다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 가로챈 요청을 HandlerMapping에게 보내 해당 요청을 수행한 Controller를 찾는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 처리요청을 등록하고 ViewResolver를 통해 View 화면을 찾는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Controlle의 해당 Method에서는 비즈니스 로직을 처리하게 되고 DB를 연동하는 클래스인 DAO를 따라 DB로부터 값을 가져온다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. ViewResolver 가 찾은 View 화면을 View로 보내 View는 처리 결과를 Dispatcher에게 보내고, DispatcherServlet은 클라이언트에게 최종 결과를 보낸다&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>springframwork</category>
      <category>동작과정</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/83</guid>
      <comments>https://hu-studyrecord.tistory.com/83#entry83comment</comments>
      <pubDate>Sun, 24 Nov 2024 20:58:07 +0900</pubDate>
    </item>
    <item>
      <title>[Error] org.apache.ibatis.binding.BindingException:</title>
      <link>https://hu-studyrecord.tistory.com/82</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring Boot에서 Mybatis와 데이터 베이스를 연동하고, 데이터를 읽어오는 과정에서 오류가 발생했다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-11-20T11:22:17.352+09:00 ERROR 22968 --- [mybatis03] [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.apache.ibatis.binding.BindingException: Mapper method 'org.example.mybatis03.mapper.DeptMyBatisMapper.insert' attempted to return null from a method with a primitive return type (int).
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:101) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) ~[mybatis-3.5.14.jar:3.5.14]
	at jdk.proxy3/jdk.proxy3.$Proxy52.insert(Unknown Source) ~[na:na]
	at 
&lt;/code&gt;&lt;/pre&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;return 을 제대로 못하는 것이였는데, 코드를 다시 보니 &amp;lt;insert&amp;gt;&amp;lt;/insert&amp;gt;가 아닌 &amp;lt;select&amp;gt;&amp;lt;/select&amp;gt;로 되어있었다&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;findByEmpno&quot; resultType=&quot;String&quot;&amp;gt;
    select *
    from emp2
    where empno=#{empno}
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;다시 수정해주니 정상적으로 되는 모습을 확인할 수 있었다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/82</guid>
      <comments>https://hu-studyrecord.tistory.com/82#entry82comment</comments>
      <pubDate>Sat, 23 Nov 2024 22:32:09 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Invalid bound statement(not found)</title>
      <link>https://hu-studyrecord.tistory.com/81</link>
      <description>&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://hu-studyrecord.tistory.com/78&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;[Spring Boot] ClassNotFoundException&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Mybatis를 이용하던 중 위와 같은 오류가 발생하였다클래스를 찾을 수 없다는 문제였고 mapper.xml에서 클래스를 잘못 주입했다 생각하여 확인하였다&amp;nbsp;프로젝트 구조는 위와 같이 org.example.mybatis로 &quot; data-og-host=&quot;hu-studyrecord.tistory.com&quot; data-og-source-url=&quot;https://hu-studyrecord.tistory.com/78&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eR1om5/hyXDfxc42j/KMzKOrTPbKI5XlCLbgWo1K/img.png?width=716&amp;amp;height=149&amp;amp;face=0_0_716_149,https://scrap.kakaocdn.net/dn/gzsRU/hyXzV8gdzA/7patbJhEoKJq6NoNpniJj0/img.png?width=716&amp;amp;height=149&amp;amp;face=0_0_716_149,https://scrap.kakaocdn.net/dn/cQE71b/hyXDhV6ifD/0wapOm0YuYjHEngO1kiSbK/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171&quot; data-og-url=&quot;https://hu-studyrecord.tistory.com/78&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hu-studyrecord.tistory.com/78&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eR1om5/hyXDfxc42j/KMzKOrTPbKI5XlCLbgWo1K/img.png?width=716&amp;amp;height=149&amp;amp;face=0_0_716_149,https://scrap.kakaocdn.net/dn/gzsRU/hyXzV8gdzA/7patbJhEoKJq6NoNpniJj0/img.png?width=716&amp;amp;height=149&amp;amp;face=0_0_716_149,https://scrap.kakaocdn.net/dn/cQE71b/hyXDhV6ifD/0wapOm0YuYjHEngO1kiSbK/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171');&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;[Spring Boot] ClassNotFoundException&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Mybatis를 이용하던 중 위와 같은 오류가 발생하였다클래스를 찾을 수 없다는 문제였고 mapper.xml에서 클래스를 잘못 주입했다 생각하여 확인하였다&amp;nbsp;프로젝트 구조는 위와 같이 org.example.mybatis로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hu-studyrecord.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;pre class=&quot;stylus&quot;&gt;&lt;code&gt;org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): org.example.mybatis03.mapper.DeptMyBatisMapper.select
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.&amp;lt;init&amp;gt;(MapperMethod.java:229) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.binding.MapperMethod.&amp;lt;init&amp;gt;(MapperMethod.java:53) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.binding.MapperProxy.lambda$cachedInvoker$0(MapperProxy.java:96) ~[mybatis-3.5.14.jar:3.5.14]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[na:na]
	at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:36) ~[mybatis-3.5.14.jar:3.5.14]
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&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;이러한 오류가 발생한다면 mapper.xml namespace 부분에 전체 경로를 올바르게 썼는지 확인해야한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;org.example.mybatis03.mapper.DeptMyBatisMapper&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&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;다시 오류를 수정해서 실행하면 동작하는 모습을 확인할 수 있다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <category>err</category>
      <category>SpringBoot</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/81</guid>
      <comments>https://hu-studyrecord.tistory.com/81#entry81comment</comments>
      <pubDate>Fri, 22 Nov 2024 14:47:16 +0900</pubDate>
    </item>
    <item>
      <title>[Error] java.lang.IllegalArgumentException</title>
      <link>https://hu-studyrecord.tistory.com/80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hu-studyrecord.tistory.com/79&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1732114359839&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;[Spring Boot] java.lang.IllegalArgumentException&quot; data-og-description=&quot;MyBatisJava Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 Persitence Framwork이다SQL을 별도의 파일로 분리해서 관리하며, 객체와 SQL 사이의 parameter mapping 작업을 자동으로 처리해준다Mapping ErrSpring Bo&quot; data-og-host=&quot;hu-studyrecord.tistory.com&quot; data-og-source-url=&quot;https://hu-studyrecord.tistory.com/79&quot; data-og-url=&quot;https://hu-studyrecord.tistory.com/79&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bsKvgD/hyXzSwVe1T/zPVL5lohs8Azw6cVW9NYU0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/LPNpy/hyXDgXbHLg/cbzK07KM8EwHQNMxerwALk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b3xgay/hyXzLq1vcK/BUvIZp1PLHfb9ubvyKYK60/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hu-studyrecord.tistory.com/79&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bsKvgD/hyXzSwVe1T/zPVL5lohs8Azw6cVW9NYU0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/LPNpy/hyXDgXbHLg/cbzK07KM8EwHQNMxerwALk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b3xgay/hyXzLq1vcK/BUvIZp1PLHfb9ubvyKYK60/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171');&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;[Spring Boot] java.lang.IllegalArgumentException&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MyBatisJava Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 Persitence Framwork이다SQL을 별도의 파일로 분리해서 관리하며, 객체와 SQL 사이의 parameter mapping 작업을 자동으로 처리해준다Mapping ErrSpring Bo&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hu-studyrecord.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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전 포스팅에서는 Mybatis를 사용하던 중 경로 오류에 대해 설명하고 해결하였다&lt;/li&gt;
&lt;li&gt;이번에는 Mapper가 같은 이름으로 작성했을 때의 오류를 말하고자 한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732114433265&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains key org.example.mybatis02.select. please check file [C:\Java\SpringProjects\mybatis02\build\resources\main\mappers\mapper1.xml] and file [C:\Java\SpringProjects\mybatis02\build\resources\main\mappers\mapper2.xml]
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:1071) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:1024) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:822) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:223) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:120) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:143) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:125) ~[mybatis-3.5.14.jar:3.5.14]
	... 90 common frames omitted&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;우선, 오류 메시지를 확인하기 위해서는 맨 마지막 오류를 살펴야한다&lt;/li&gt;
&lt;li&gt;.IllegalArguementException: 뒤를 보면 org.exmple.mybaties.02.select가 이미 있기 때문에 xml 파일을 확인하도록 권장한다&lt;/li&gt;
&lt;li&gt;따라서 파일을 살펴보면 mapper1.xml과 mapper2.xml 의 namespace가 동일하여 충돌이 발생했음을 알 수 있었다&lt;/li&gt;
&lt;/ul&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;pre class=&quot;cs&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;org.example.mybatis01&quot;&amp;gt;
    &amp;lt;select id=&quot;select&quot; resultType=&quot;String&quot;&amp;gt;
        select now() as now
    &amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;org.example.mybatis02&quot;&amp;gt;
    &amp;lt;select id=&quot;select&quot; resultType=&quot;String&quot;&amp;gt;
        select version() as version
    &amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;xml 호출 부분&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public String select(){
        return sqlSessionTemplate.selectOne(&quot;org.example.mybatis02.select&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;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;</description>
      <category>SpringBoot/Error</category>
      <category>err</category>
      <category>mapper</category>
      <category>mapper statement alredy</category>
      <category>mybatis</category>
      <category>SpringBoot</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/80</guid>
      <comments>https://hu-studyrecord.tistory.com/80#entry80comment</comments>
      <pubDate>Thu, 21 Nov 2024 00:04:04 +0900</pubDate>
    </item>
    <item>
      <title>[Error] java.lang.IllegalArgumentException</title>
      <link>https://hu-studyrecord.tistory.com/79</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;MyBatis&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 Persitence Framwork이다&lt;/li&gt;
&lt;li&gt;SQL을 별도의 파일로 분리해서 관리하며, 객체와 SQL 사이의 parameter mapping 작업을 자동으로 처리해준다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Mapping Err&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Spring Boot에서 MyBatis를 사용하다보면 여러 오류를 발생할 수 있는데 대표적으로 경로 오류가 발생한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.example.mybatis0.select
	at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1097) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:875) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:868) ~[mybatis-3.5.14.jar:3.5.14]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:152) ~[mybatis-3.5.14.jar:3.5.14]
	... 52 common frames omitted
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MyBatis를 사용하면, mapper.xml을 작성하게 되는데 여기서의 namespace와 MyBatisRepository의 경로를 똑같이 작성해야한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1732106001346&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; public String select(){
    return sqlSessionTemplate.selectOne(&quot;org.example.mybatis02.select&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1732106017930&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;org.example.mybatis02&quot;&amp;gt;&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&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;꼭 복잡한 구조일수록 경로를 옳게 썼는지 확인하는 과정이 필요하다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <category>mapper</category>
      <category>mybatis</category>
      <category>SpringBoot</category>
      <category>경로</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/79</guid>
      <comments>https://hu-studyrecord.tistory.com/79#entry79comment</comments>
      <pubDate>Wed, 20 Nov 2024 21:35:06 +0900</pubDate>
    </item>
    <item>
      <title>[Error] ClassNotFoundException</title>
      <link>https://hu-studyrecord.tistory.com/78</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0d1K7/btsKPSIJx6X/A0JhKxCZHLVdURvKb9Q650/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0d1K7/btsKPSIJx6X/A0JhKxCZHLVdURvKb9Q650/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0d1K7/btsKPSIJx6X/A0JhKxCZHLVdURvKb9Q650/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0d1K7%2FbtsKPSIJx6X%2FA0JhKxCZHLVdURvKb9Q650%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;716&quot; height=&quot;149&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;149&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mybatis를 이용하던 중 위와 같은 오류가 발생하였다&lt;/li&gt;
&lt;li&gt;클래스를 찾을 수 없다는 문제였고 mapper.xml에서 클래스를 잘못 주입했다 생각하여 확인하였다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;179&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWCc5d/btsKP9XNnDH/mHy2CBwlxE1xM3MvpzHXS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWCc5d/btsKP9XNnDH/mHy2CBwlxE1xM3MvpzHXS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWCc5d/btsKP9XNnDH/mHy2CBwlxE1xM3MvpzHXS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWCc5d%2FbtsKP9XNnDH%2FmHy2CBwlxE1xM3MvpzHXS1%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;179&quot; height=&quot;140&quot; data-origin-width=&quot;179&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트 구조는 위와 같이 org.example.mybatis로 되어 있지만, 코드에는 com.example.mybatis로 입력하여 제대로 Database연결이 되지 않고 오류가 떴다&lt;/li&gt;
&lt;li&gt;이에 본인의 프로젝트 경로에 맞게 수정하면 된다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;코드는 옳게 쓴 것 같은데 계속 실행되지 않아 괜히 다른 코드를 건들이곤 했었다&lt;/li&gt;
&lt;li&gt;하지만, 경로를 잘못 쓴 것을 알고 앞으로는 프로젝트 자체의 경로와 설정을 잘 확인해야겠다는 생각을 했다&lt;/li&gt;
&lt;li&gt;또한 Err Log를 잘 읽도록(마지막 err 확인) 보는 눈을 키워야겠다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <category>clasnotfoundexception</category>
      <category>err</category>
      <category>mybatis</category>
      <category>SpringBoot</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/78</guid>
      <comments>https://hu-studyrecord.tistory.com/78#entry78comment</comments>
      <pubDate>Tue, 19 Nov 2024 22:05:56 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Error starting ApplicationContext</title>
      <link>https://hu-studyrecord.tistory.com/77</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Boot에서는 권장 패키지 구조가 존재한다&lt;/p&gt;
&lt;pre id=&quot;code_1732021134959&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;com
 +- example
     +- myapplication
         +- MyApplication.java
         |
         +- customer
         |   +- Customer.java
         |   +- CustomerController.java
         |   +- CustomerService.java
         |   +- CustomerRepository.java
         |
         +- order
             +- Order.java
             +- OrderController.java
             +- OrderService.java
             +- OrderRepository.java&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;만약 패키지 구조를 병렬적으로 하는 경우, Spring에서는 해당 패키지를 찾지 못하여 오류가 발생한다&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;646&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ON8FO/btsKN27mbNM/bpr7FkCA4T3v2KjVrRC5M1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ON8FO/btsKN27mbNM/bpr7FkCA4T3v2KjVrRC5M1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ON8FO/btsKN27mbNM/bpr7FkCA4T3v2KjVrRC5M1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FON8FO%2FbtsKN27mbNM%2Fbpr7FkCA4T3v2KjVrRC5M1%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;646&quot; height=&quot;30&quot; data-origin-width=&quot;646&quot; data-origin-height=&quot;30&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;위와 같은 오류를 확인할 수 있고, 해결을 위해서는 아래와 같이 @Import를 추가하여 알맞은 위치를 찾도록 해야한다&lt;/p&gt;
&lt;pre id=&quot;code_1732021220278&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Import(BeanConfig.class) /// 해결 방안 import 로 위치 잡아줌
public class Boot03Application implements CommandLineRunner {}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SpringBoot/Error</category>
      <category>@import</category>
      <category>SpringBoot</category>
      <category>structure</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/77</guid>
      <comments>https://hu-studyrecord.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 19 Nov 2024 22:01:06 +0900</pubDate>
    </item>
    <item>
      <title>[의존성] 추가 라이브러리 선택</title>
      <link>https://hu-studyrecord.tistory.com/76</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring 프로젝트를 생성할때, 의존성을 추가하는 부분이 있다&lt;/li&gt;
&lt;li&gt;만약 사용 중 필요한 의존서이 있다면 더 추가할 수 있는데 아래의 방법을 하면 된다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;build.gradle &amp;gt; dependencies 옆의 스타터 편집 클릭&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dys8t0/btsKNzRKcEs/4x6k5ZYZzKWyCFKcLCrZv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dys8t0/btsKNzRKcEs/4x6k5ZYZzKWyCFKcLCrZv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dys8t0/btsKNzRKcEs/4x6k5ZYZzKWyCFKcLCrZv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdys8t0%2FbtsKNzRKcEs%2F4x6k5ZYZzKWyCFKcLCrZv1%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;588&quot; height=&quot;304&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JDBC추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dl7lvP/btsKPRplAtR/Fiqc85BH3fJBoOQmY91p5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dl7lvP/btsKPRplAtR/Fiqc85BH3fJBoOQmY91p5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dl7lvP/btsKPRplAtR/Fiqc85BH3fJBoOQmY91p5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdl7lvP%2FbtsKPRplAtR%2FFiqc85BH3fJBoOQmY91p5k%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;472&quot; height=&quot;234&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;234&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 class=&quot;sml&quot;&gt;&lt;code&gt;dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    
    runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
}
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SpringBoot</category>
      <category>jdbcapi</category>
      <category>SpringBoot</category>
      <category>오블완</category>
      <category>의존성추가</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/76</guid>
      <comments>https://hu-studyrecord.tistory.com/76#entry76comment</comments>
      <pubDate>Tue, 19 Nov 2024 21:53:31 +0900</pubDate>
    </item>
    <item>
      <title>[Error] logging ERR</title>
      <link>https://hu-studyrecord.tistory.com/75</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;스프링 부트에서의 Log&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스프링 부트에서는 기본적으로 Logback이 설정되어 있으며 SLF4J의 3가지 모듈이 Logback과 연결된다&lt;/li&gt;
&lt;li&gt;이를 통해 로깅 설정을 빠르게 적용하고, 필요에 따라 커스터 마이징이 가능하다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Logger 설정 오류&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring Boot에서 Logger을 사용하기 위해서는 클래스에 Logger 객체를 생성하여 사용해야한다&lt;/li&gt;
&lt;li&gt;SL4J의 LoggerFactory를 주로 사용한다&lt;/li&gt;
&lt;li&gt;하지만 여기서 오류가 발생하였다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;41&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byNDbQ/btsKN4vMKmO/7AIxScdAtuHPjvi2ThsDI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byNDbQ/btsKN4vMKmO/7AIxScdAtuHPjvi2ThsDI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byNDbQ/btsKN4vMKmO/7AIxScdAtuHPjvi2ThsDI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyNDbQ%2FbtsKN4vMKmO%2F7AIxScdAtuHPjvi2ThsDI0%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;613&quot; height=&quot;41&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;41&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;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'logger' 타입을 'Logger'(으)로 마이그레이션을 진행하면 오류가 해결되는 모습을 확인할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dI5mXp/btsKObO4T3e/ZOHYFM7ABFGjrxmCnujtIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dI5mXp/btsKObO4T3e/ZOHYFM7ABFGjrxmCnujtIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dI5mXp/btsKObO4T3e/ZOHYFM7ABFGjrxmCnujtIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdI5mXp%2FbtsKObO4T3e%2FZOHYFM7ABFGjrxmCnujtIK%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;679&quot; height=&quot;231&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이후에 원인을 찾아보니 Logger와 LoggerFactory는 SLF4J 라이브러리에 속하므로, 의존성이 포함되어야 작동을 하는데 의존성을 추가를 진행하지 않아서 발생하는 문제였다.&lt;/li&gt;
&lt;li&gt;이에 SLF4J 의존성 문제를 우회하여 Java 기본 로깅(JUL)을 사용하여 오류를 해결하였다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>SpringBoot/Error</category>
      <category>Log</category>
      <category>LoggerFactory</category>
      <category>slf4j</category>
      <category>SpringBoot</category>
      <category>마이그레이션</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/75</guid>
      <comments>https://hu-studyrecord.tistory.com/75#entry75comment</comments>
      <pubDate>Mon, 18 Nov 2024 17:08:48 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 엔터티</title>
      <link>https://hu-studyrecord.tistory.com/74</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lnP8x/btsKL8F2MWy/YwemYQwymREs76zV1xwEZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lnP8x/btsKL8F2MWy/YwemYQwymREs76zV1xwEZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lnP8x/btsKL8F2MWy/YwemYQwymREs76zV1xwEZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlnP8x%2FbtsKL8F2MWy%2FYwemYQwymREs76zV1xwEZk%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;667&quot; height=&quot;517&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;517&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;797&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zZLbQ/btsKNuARZIu/RlGbbxfkZkcoSFeSuT30mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zZLbQ/btsKNuARZIu/RlGbbxfkZkcoSFeSuT30mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zZLbQ/btsKNuARZIu/RlGbbxfkZkcoSFeSuT30mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzZLbQ%2FbtsKNuARZIu%2FRlGbbxfkZkcoSFeSuT30mk%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;605&quot; height=&quot;797&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;797&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/74</guid>
      <comments>https://hu-studyrecord.tistory.com/74#entry74comment</comments>
      <pubDate>Sun, 17 Nov 2024 22:58:37 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 모델링</title>
      <link>https://hu-studyrecord.tistory.com/73</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;모델링의 특징&lt;/h3&gt;
&lt;table style=&quot;height: 100px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 165px;&quot;&gt;추상화(Abstraction)&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 689px;&quot;&gt;대상의 주요 특징을 추출하여 일정한 형식으로 표현한다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px; width: 165px;&quot;&gt;단순화(Simplification)&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 689px;&quot;&gt;복잡한 현실세계를 그대로 표현하지 않고 보다 단순하게 표현한다&lt;br /&gt;- UML이나 ERD와 같이 제한된 언어나 약속된 표기법을 사용하여 누구나 이해하기 쉽게 한다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px; width: 165px;&quot;&gt;명확화(Clarity)&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 689px;&quot;&gt;모델링의 결과는 보는 사람에 다라 서로 다르게 해석되지 않고 대상을 명확하게 이해할 수 있도록 모호함이 없게 기술한다&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;모델링의 세 가지 관점&lt;/h3&gt;
&lt;table style=&quot;height: 143px;&quot; width=&quot;852&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 220px;&quot;&gt;데이터 관점(대상, What)&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 634px;&quot;&gt;업무를 구성하는 데이터에 집중하여, 어떤 데이터들이 서로 관계를 맺고 사용되는지를 모델링하는 것&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px; width: 220px;&quot;&gt;프로세스 관점(처리방법, How)&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 634px;&quot;&gt;업무의 흐름에 집중하여, 업무가 실제로 처리되는 일이 어떻게 처리되는지를 모델링 하는것(동적 분석, 도메인 분석 기반)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 220px;&quot;&gt;데이너와 프로세스의 상관 관점&lt;br /&gt;(대상과 처리방법의 상관관계&lt;br /&gt;, Interaction)&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 634px;&quot;&gt;업무를 구성하는 데이터와 프로세스가 서로 어떻게 관계를 맺고 영향을 주고받는지를 모델링하는 것(CRUD분석 기반)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;모델링의 세 가지 단계&lt;/h3&gt;
&lt;table style=&quot;color: #333333; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;852&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.4186%; height: 17px;&quot;&gt;개념적 데이터 모델링&lt;br /&gt;(Conceptual Data Modeling)&lt;/td&gt;
&lt;td style=&quot;width: 75.4651%; height: 17px;&quot;&gt;&lt;span&gt;가장 높은 추상화 레벨을 가진 모델링으로 업무와 개념 중심으로 포괄적인 수준에서 모델링 수행&lt;/span&gt;&lt;br /&gt;&lt;span&gt;EA수립할 때 많이 이용되며, 엔터티(Entity), 속성(Attribute) 도출&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.4186%; height: 40px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;논리적 데이터 모델링&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;(Logical Data Modeling)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75.4651%; height: 40px;&quot;&gt;데이터 모델에 대한 키(Key), 속성(Attribute), 관계(Relationship)등을 표현하며 서로 다른 DBMS에 적용이 가능한 수준에서 추상화 레벨을 가지므로 재사용성이 높다&lt;br /&gt;정규화를 통해 중복 데이터를 최소화 한며 식별자 도출 및 관계 정의 수행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 24.4186%; height: 20px;&quot;&gt;물리적 데이터 모델링&lt;br /&gt;(Physical Data Modeling)&lt;/td&gt;
&lt;td style=&quot;width: 75.4651%; height: 20px;&quot;&gt;&lt;span&gt;특정 DBMS에 맞추어 구현이 가능한 수준에서 모델링을 수행하는 것으로 DBMS 성능, 보안, 가용성 을 고려하여 설계하는 것&lt;/span&gt;&lt;br /&gt;&lt;span&gt;가장 낮은 수준에서의 추상화 레벨을 가지며, 성능향상을 위해 반정규화 수행 및 테이블, 인덱스, 함수 생성&lt;/span&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;</description>
      <category>MariaDB</category>
      <category>SQL</category>
      <category>SQLD</category>
      <category>모델링</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/73</guid>
      <comments>https://hu-studyrecord.tistory.com/73#entry73comment</comments>
      <pubDate>Sat, 16 Nov 2024 22:10:08 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] DI (Dependency Injection)가 필요한 이유</title>
      <link>https://hu-studyrecord.tistory.com/72</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Dependency Injection&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring 프레임워크는 3가지 핵심 프로그래밍 모델을 지원하고 있으며, 그 중 하나가 의존성 주입(Dependency Injection,DI)이다&lt;/li&gt;
&lt;li&gt;의존성 주입은 하나의 객체에 다른 객체의 의존성을 제공하는 기술이며 객체 지향의 다섯가지 원칙(SOLID)중 의존관계 역전 원칙(Dependency inversion principle)을 따른다&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;DI가 필요한 이유&lt;/h4&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;즉, 클래스간 의존(Dependency)관계가 있으므로 한 클래스가 바뀔 때 다른 클래스가 영향을 받음&lt;/li&gt;
&lt;li&gt;이를 방지하기 위해 인터페이스를 사용하여 클래스간 의존성을 없애 유연하게 함&lt;/li&gt;
&lt;li&gt;의존성 주입을 받는다면, 클래스간 결합도가 약해지고 한 클래스가 변경될 경우, 다른 클래스가 변경될 필요성이 적어짐&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;DI의 특징&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;코드의 재활용성을 높일 수 있으므로 유지보수가 용이해짐&lt;/li&gt;
&lt;li&gt;클래스 간 결합도를 낮출 수 있음&lt;/li&gt;
&lt;li&gt;인터페이스 기반으로 설계되며, 코드를 유연하게 함&lt;/li&gt;
&lt;li&gt;단위테스트에 용이함&lt;/li&gt;
&lt;li&gt;UI가 있는 프로그램에서, 생명주기 별로 Container을 관리하여 리소스를 막을 수 있음&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;의존성 주입 방법&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;XMl 기반 의존성 주입
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;XMl 설정 파일에는 &amp;lt;bean&amp;gt; 태그를 사용하여 스프링 IoC컨테이너가 관리할 빈을 정의함&lt;/li&gt;
&lt;li&gt;각 &amp;lt;bean&amp;gt; 태그는 특정 클래스를 정의하고 해당, 클래스의 의존성을 설정할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;JavaConfig 기반 설정
&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;클래스에 @Configuration 어노테이션을 사용하고, 빈으로 등록할 메서드에 @Bean 어노테이션 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링에서 DI를 지원하는 이유에 대해 알아보았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전반적인 개념은 이해를 했지만 코드가 늘어남에 따른 흐름에 대해서는 더 많은 공부가 필요할 듯하다&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>di</category>
      <category>Java</category>
      <category>spring</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/72</guid>
      <comments>https://hu-studyrecord.tistory.com/72#entry72comment</comments>
      <pubDate>Fri, 15 Nov 2024 20:00:31 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Spring Boot 프로젝트 생성하기</title>
      <link>https://hu-studyrecord.tistory.com/71</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ 로 Spring Boot를 사용하고, 프로젝트를 생성하는 방법이다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K4EKF/btsKJzb8vdr/Kn8DvdvCqeXPhq7VfaUKvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K4EKF/btsKJzb8vdr/Kn8DvdvCqeXPhq7VfaUKvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K4EKF/btsKJzb8vdr/Kn8DvdvCqeXPhq7VfaUKvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK4EKF%2FbtsKJzb8vdr%2FKn8DvdvCqeXPhq7VfaUKvK%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;419&quot; height=&quot;441&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 &amp;gt; 새로만들기 &amp;gt; 프로젝트&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4FeOP/btsKHYYz8uf/o7oxgDwTJSOba4etSFyE01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4FeOP/btsKHYYz8uf/o7oxgDwTJSOba4etSFyE01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4FeOP/btsKHYYz8uf/o7oxgDwTJSOba4etSFyE01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4FeOP%2FbtsKHYYz8uf%2Fo7oxgDwTJSOba4etSFyE01%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;408&quot; height=&quot;710&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Boot 선택 &amp;gt; 프로젝트 명 작성 &amp;gt; 다음&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cihgj/btsKJ5VO9P7/OZbJzRguMBJCZx0yniO3y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cihgj/btsKJ5VO9P7/OZbJzRguMBJCZx0yniO3y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cihgj/btsKJ5VO9P7/OZbJzRguMBJCZx0yniO3y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCihgj%2FbtsKJ5VO9P7%2FOZbJzRguMBJCZx0yniO3y1%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;404&quot; height=&quot;712&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Boot, Lombok 선택 &amp;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;새 프로젝트를 생성하는 과정은 어렵지 않으며 원하는 Tool이 있다면 요구사항에 맞춰 추가하면 된다&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>SpringBoot</category>
      <category>프로젝트 생성</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/71</guid>
      <comments>https://hu-studyrecord.tistory.com/71#entry71comment</comments>
      <pubDate>Thu, 14 Nov 2024 18:44:10 +0900</pubDate>
    </item>
    <item>
      <title>[JSP] Encoding ERROR</title>
      <link>https://hu-studyrecord.tistory.com/70</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발을 진행하다보면 한번쯤 이런 화면을 마주할 수 있다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Peub2/btsKJmjIMHO/RV9Wq3kjNnBdjwQHci9xU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Peub2/btsKJmjIMHO/RV9Wq3kjNnBdjwQHci9xU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Peub2/btsKJmjIMHO/RV9Wq3kjNnBdjwQHci9xU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPeub2%2FbtsKJmjIMHO%2FRV9Wq3kjNnBdjwQHci9xU0%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;274&quot; height=&quot;99&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;99&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;pre id=&quot;code_1731574011250&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코딩 부분을 빼먹어서 나오지 않았던 것이였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 위의 부분을 제대로 추가하고 실행하면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caWxpx/btsKH9yW31B/ZoPlYqP15lafridWy79WFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caWxpx/btsKH9yW31B/ZoPlYqP15lafridWy79WFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caWxpx/btsKH9yW31B/ZoPlYqP15lafridWy79WFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaWxpx%2FbtsKH9yW31B%2FZoPlYqP15lafridWy79WFk%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;214&quot; height=&quot;100&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제대로 나오는 모습을 확인할 수 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <category>encoding</category>
      <category>html</category>
      <category>jsp</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/70</guid>
      <comments>https://hu-studyrecord.tistory.com/70#entry70comment</comments>
      <pubDate>Thu, 14 Nov 2024 17:49:08 +0900</pubDate>
    </item>
    <item>
      <title>[MVC Pattern] Model 1 vs Model 2</title>
      <link>https://hu-studyrecord.tistory.com/69</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;MVC(Model-View-Controller) Pattern&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JSP를 이용하여 구성할 수 있는 Web Application Architecture은 Model1과 Model2로 나눌 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Model 1&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duk1XS/btsKHLDXf3f/SSV5thGFpRhtw4HAvvyvlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duk1XS/btsKHLDXf3f/SSV5thGFpRhtw4HAvvyvlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duk1XS/btsKHLDXf3f/SSV5thGFpRhtw4HAvvyvlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fduk1XS%2FbtsKHLDXf3f%2FSSV5thGFpRhtw4HAvvyvlK%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;620&quot; height=&quot;199&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;view와 logic을 JSP페이지 하나에서 처리하는 구조&lt;/li&gt;
&lt;li&gt;client로부터 요청이 들어올 시, Java beans나 별도의 service를 이용하여 처리하고 결과를 client에 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100.58%; height: 182px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.0787%; text-align: center;&quot;&gt;MVC&lt;/td&gt;
&lt;td style=&quot;width: 64.6013%; text-align: center;&quot;&gt;정의&lt;/td&gt;
&lt;td style=&quot;width: 28.7675%; text-align: center;&quot;&gt;사용 구분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.0787%; text-align: left;&quot;&gt;Model&lt;/td&gt;
&lt;td style=&quot;width: 64.6013%; text-align: left;&quot;&gt;비즈니스 로직과 데이터 담당 객체&lt;/td&gt;
&lt;td style=&quot;width: 28.7675%; text-align: left;&quot;&gt;DAO, DTO &lt;br /&gt;JSP직접 처리, JavaBean사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.0787%; text-align: left;&quot;&gt;View&lt;/td&gt;
&lt;td style=&quot;width: 64.6013%; text-align: left;&quot;&gt;클라이언트에서 보여질 화면 렌더링&lt;/td&gt;
&lt;td style=&quot;width: 28.7675%; text-align: left;&quot;&gt;JSP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.0787%; text-align: left;&quot;&gt;Controller&lt;/td&gt;
&lt;td style=&quot;width: 64.6013%; text-align: left;&quot;&gt;클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달&lt;/td&gt;
&lt;td style=&quot;width: 28.7675%; text-align: left;&quot;&gt;JSP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Model 2&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5FgMB/btsKGVN0oji/epvnRkg7DLqxowG0Pl7wl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5FgMB/btsKGVN0oji/epvnRkg7DLqxowG0Pl7wl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5FgMB/btsKGVN0oji/epvnRkg7DLqxowG0Pl7wl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5FgMB%2FbtsKGVN0oji%2FepvnRkg7DLqxowG0Pl7wl0%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;690&quot; height=&quot;272&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MVC 패턴을 웹개발에 도입한 구조&lt;/li&gt;
&lt;li&gt;client 요청에 대한 처리는 Servlet이 logic 처리는 java class(Service, Dao..), client에게 출력하는 응답페이지는 JSP가 담당함&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.9988%; height: 118px;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.0787%; height: 20px;&quot;&gt;MVC&lt;/td&gt;
&lt;td style=&quot;width: 63.2074%; height: 20px;&quot;&gt;정의&lt;/td&gt;
&lt;td style=&quot;width: 29.6264%; height: 20px;&quot;&gt;사용 구분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 15.0787%; height: 38px;&quot;&gt;Model&lt;/td&gt;
&lt;td style=&quot;width: 63.2074%; height: 38px;&quot;&gt;비즈니스 로직과 데이터베이스 상호작용 &lt;br /&gt;서블릿이 처리한 데이터는 모델을 통해 JSP로 전달&lt;/td&gt;
&lt;td style=&quot;width: 29.6264%; height: 38px;&quot;&gt;DAO, DTO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.0787%; height: 20px;&quot;&gt;View&lt;/td&gt;
&lt;td style=&quot;width: 63.2074%; height: 20px;&quot;&gt;클라이언트에서 보여질 화면 담당&lt;/td&gt;
&lt;td style=&quot;width: 29.6264%; height: 20px;&quot;&gt;JSP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 15.0787%; height: 40px;&quot;&gt;Controller&lt;/td&gt;
&lt;td style=&quot;width: 63.2074%; height: 40px;&quot;&gt;클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달 &lt;br /&gt;요청을 받고 모델과 뷰 간의 흐름 제어&lt;/td&gt;
&lt;td style=&quot;width: 29.6264%; height: 40px;&quot;&gt;Servlet&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MVC Model1 vs MVC Model2&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클라이언트의 요청처리와 응답처리가 분리되어 있는가
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MVC Model 1 : 요청처리와 응답처리가 모두 JSP에서 이루어짐&lt;/li&gt;
&lt;li&gt;MVC Model 2 : 요청처리는 Servlet에서 담당하고, 응답처리는 JSP에서 이루어짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;접근 방식
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;MVC Model 1 : 클라이언트가 직접적으로 View에 접근 가능&lt;/li&gt;
&lt;li&gt;MVC Model 2 : 클라이언트는 View에 직접적으로 접근할 수 없으며 Controller를 통해 접근해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MVC패턴에 대해 말할때는 보통 MVC Model2를 의미한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>Java</category>
      <category>jsp</category>
      <category>model1</category>
      <category>Model2</category>
      <category>mvc</category>
      <category>Servlet</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/69</guid>
      <comments>https://hu-studyrecord.tistory.com/69#entry69comment</comments>
      <pubDate>Wed, 13 Nov 2024 19:49:28 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Lombok 설정</title>
      <link>https://hu-studyrecord.tistory.com/68</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Lombok 플러그인 설치&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkPrj5/btsKGBA2epb/Yh2krXcgsFWTgSqBKICTA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkPrj5/btsKGBA2epb/Yh2krXcgsFWTgSqBKICTA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkPrj5/btsKGBA2epb/Yh2krXcgsFWTgSqBKICTA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkPrj5%2FbtsKGBA2epb%2FYh2krXcgsFWTgSqBKICTA0%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;472&quot; height=&quot;356&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 &amp;gt; 설정 &amp;gt; 플러그인 &amp;gt; Lombok 검색(설치)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Lombok 라이브러리 추가&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;build.gradle에 lombok 라이브러리 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.34&quot;&gt;https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.34&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;elixir&quot;&gt;&lt;code&gt;// &amp;lt;https://mvnrepository.com/artifact/org.projectlombok/lombok&amp;gt;
compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Lombok 구조 확인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보기 &amp;gt; 도구 창 &amp;gt; 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HqUCQ/btsKFhjbJqk/ar7WLscBbhmuP9fPkKzxq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HqUCQ/btsKFhjbJqk/ar7WLscBbhmuP9fPkKzxq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HqUCQ/btsKFhjbJqk/ar7WLscBbhmuP9fPkKzxq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHqUCQ%2FbtsKFhjbJqk%2Far7WLscBbhmuP9fPkKzxq0%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;513&quot; height=&quot;500&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzOnZy/btsKGG279Wg/eAeeNZ34dMT2rjT2mvAnq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzOnZy/btsKGG279Wg/eAeeNZ34dMT2rjT2mvAnq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzOnZy/btsKGG279Wg/eAeeNZ34dMT2rjT2mvAnq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzOnZy%2FbtsKGG279Wg%2FeAeeNZ34dMT2rjT2mvAnq1%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;515&quot; height=&quot;522&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>intellij</category>
      <category>Lombok</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <category>플러그인</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/68</guid>
      <comments>https://hu-studyrecord.tistory.com/68#entry68comment</comments>
      <pubDate>Tue, 12 Nov 2024 17:53:12 +0900</pubDate>
    </item>
    <item>
      <title>[JSP] 게시판 만들기 오류 (script type)</title>
      <link>https://hu-studyrecord.tistory.com/67</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;JSP로 게시판을 생성하는데 버튼을 누르면 jsp에서 작성한 javascript부분이 뜨지 않는 문제가 발생했다&lt;/p&gt;
&lt;pre id=&quot;code_1731325394906&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;out.println(&quot;&amp;lt;script type = 'text.javascript'&amp;gt;&quot;);
    if (flag == 0) {
        // 정상
        out.println(&quot;alert('글 삭제 성공');&quot;);
        out.println(&quot;location.href='./board_list1.jsp';&quot;);
    } else if (flag == 1){
        // 비정상
        out.println(&quot;alert('비밀번호 오류');&quot;);
        out.println(&quot;history.back();&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;이렇게 작성한 코드였는데, DB에는 정상적으로 글 삭제가 진행되지만 웹 페이지에 alert 메시지가 뜨지 않았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 어떤 오류 메세지도 뜨지않아 오타일것이라 생각하고 한참 찾았는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731325490884&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;out.println(&quot;&amp;lt;script type = 'text/javascript'&amp;gt;&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;text/javascript라고 작성해야하는 부분을 text.javascript로 써서 정상적인 동작을 하지 않는 것이였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류도 없어서 너무 난감했었는데 지금 보니까 황당한 실수였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로는 코드를 작성할때 오타없이 차근히 작성을 해야겠다,,&lt;/p&gt;</description>
      <category>SpringBoot</category>
      <category>err없음</category>
      <category>intellij</category>
      <category>jsp</category>
      <category>text/javascript</category>
      <category>오블완</category>
      <category>오타</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/67</guid>
      <comments>https://hu-studyrecord.tistory.com/67#entry67comment</comments>
      <pubDate>Mon, 11 Nov 2024 20:47:11 +0900</pubDate>
    </item>
    <item>
      <title>[ERROR] Error: 1366-22007</title>
      <link>https://hu-studyrecord.tistory.com/66</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Java를 통해 MariaDB를 연결하던 중 다음과 같은 오류가 발생했다&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;[err2](conn=129) Incorrect integer value: 'null' for column `sample`.`emp10`.`mgr` at row 1
[ WARN] (main) Error: 1366-22007: Incorrect integer value: 'null' for column `sample`.`emp10`.`mgr` at row 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 오류는 데이터를 집어넣을때 형식을 맞춰야 하는데 틀린경우를 말한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sql에 숫자형으로 넣어야할때에는 ''없이 넣어야하며 문자형인경우에는 '' 를 꼭 써서 넣어야한다&lt;/p&gt;
&lt;pre id=&quot;code_1731244816165&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- sql + java 연결 오류
# 숫자형, 문자형 잘못 넣은 경우(&quot; 여부 )&lt;/code&gt;&lt;/pre&gt;</description>
      <category>MariaDB/Error</category>
      <category>incorrect integer value</category>
      <category>intellij</category>
      <category>Java</category>
      <category>mariadb</category>
      <category>연동</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/66</guid>
      <comments>https://hu-studyrecord.tistory.com/66#entry66comment</comments>
      <pubDate>Sun, 10 Nov 2024 22:22:39 +0900</pubDate>
    </item>
    <item>
      <title>[MariaDB] 설치하기</title>
      <link>https://hu-studyrecord.tistory.com/65</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;MariaDB란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)로 MySQL 창시자 및 개발자들이 오라클은 만든 데이터 베이스로 MySQL과 유사한 DB이다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MariaDB 설치하기&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우선, MariaDB를 사용하기에 앞서 설치를 진행해줘야 하며 그 과정을 설명하려고 한다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 다운로드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mariadb.org/download/?t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.5.2&amp;amp;os=windows&amp;amp;cpu=x86_64&amp;amp;pkg=msi&amp;amp;mirror=blendbyte&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mariadb.org/download/t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.5.2&amp;amp;os=windows&amp;amp;cpu=x86_64&amp;amp;pkg=msi&amp;amp;mirror=blendbyte&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731243834150&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;Download MariaDB Server - MariaDB.org&quot; data-og-description=&quot;REST API Release Schedule Reporting Bugs &amp;hellip; Continue reading &amp;quot;Download MariaDB Server&amp;quot;&quot; data-og-host=&quot;mariadb.org&quot; data-og-source-url=&quot;https://mariadb.org/download/?t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.5.2&amp;amp;os=windows&amp;amp;cpu=x86_64&amp;amp;pkg=msi&amp;amp;mirror=blendbyte&quot; data-og-url=&quot;https://mariadb.org/download/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c0XbvF/hyXwvU5f54/A19dPLcNhBFw9kX4DScyxk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bMCxoE/hyXwgDDWmO/2fcB8x5kmib3wqyPwmn2P1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://mariadb.org/download/?t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.5.2&amp;amp;os=windows&amp;amp;cpu=x86_64&amp;amp;pkg=msi&amp;amp;mirror=blendbyte&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mariadb.org/download/?t=mariadb&amp;amp;p=mariadb&amp;amp;r=11.5.2&amp;amp;os=windows&amp;amp;cpu=x86_64&amp;amp;pkg=msi&amp;amp;mirror=blendbyte&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c0XbvF/hyXwvU5f54/A19dPLcNhBFw9kX4DScyxk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bMCxoE/hyXwgDDWmO/2fcB8x5kmib3wqyPwmn2P1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;Download MariaDB Server - MariaDB.org&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;REST API Release Schedule Reporting Bugs &amp;hellip; Continue reading &quot;Download MariaDB Server&quot;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mariadb.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 사이트에서 설치를 진행해준다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7uJx8/btsKCx0ZJV8/0B3rAqjaS1dRfFumznCEQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7uJx8/btsKCx0ZJV8/0B3rAqjaS1dRfFumznCEQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7uJx8/btsKCx0ZJV8/0B3rAqjaS1dRfFumznCEQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7uJx8%2FbtsKCx0ZJV8%2F0B3rAqjaS1dRfFumznCEQ1%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;391&quot; height=&quot;308&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;384&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;2. 비밀번호를 설정하고 Next를 계속 진행해주면 된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VMq7m/btsKC2y6CN8/fs6p1a1iZWkIxF1oEk9OD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VMq7m/btsKC2y6CN8/fs6p1a1iZWkIxF1oEk9OD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VMq7m/btsKC2y6CN8/fs6p1a1iZWkIxF1oEk9OD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVMq7m%2FbtsKC2y6CN8%2Ffs6p1a1iZWkIxF1oEk9OD0%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;390&quot; height=&quot;226&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;280&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;3. 실행 방법&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;UI를 통해 확인하고 싶다면 HeidiSQL을 들어가서 실행하면된다&lt;/li&gt;
&lt;li&gt;terminal창으로 실행하는 방법&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwHi2k/btsKD5uYmPO/SjdmXIzdPKMzHOI7jomBzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwHi2k/btsKD5uYmPO/SjdmXIzdPKMzHOI7jomBzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwHi2k/btsKD5uYmPO/SjdmXIzdPKMzHOI7jomBzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwHi2k%2FbtsKD5uYmPO%2FSjdmXIzdPKMzHOI7jomBzK%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;419&quot; height=&quot;312&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작 &amp;gt; 모든앱에 들어가면 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 Command Prompt (MariaDB 11.5 (x64))를 클릭한 뒤&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbB6RL/btsKC1GZDiU/VSzSKGxLFePUStSZb9GRxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbB6RL/btsKC1GZDiU/VSzSKGxLFePUStSZb9GRxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbB6RL/btsKC1GZDiU/VSzSKGxLFePUStSZb9GRxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbB6RL%2FbtsKC1GZDiU%2FVSzSKGxLFePUStSZb9GRxK%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;632&quot; height=&quot;206&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1731244194093&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;명령을 입력하면 비밀번호를 입력하라는 문구가 뜨는데 여기서, 처음 설치할때 설정한 비밀번호를 작성해주면 Database를 확인할 수 있다&lt;/p&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;gt; 서비스를 들어간 후&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r79r7/btsKCOVuw8J/7aoFsdplV6KNBrdErN9Q0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r79r7/btsKCOVuw8J/7aoFsdplV6KNBrdErN9Q0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r79r7/btsKCOVuw8J/7aoFsdplV6KNBrdErN9Q0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr79r7%2FbtsKCOVuw8J%2F7aoFsdplV6KNBrdErN9Q0K%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;333&quot; height=&quot;76&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;76&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;오래전에 설치를 진행했었지만, 혹시 추후에 다시 설치하거나 컴퓨터를 바꿀 경우를 고려하여 기록하였다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 이전에 꼭, 다른 데이터베이스가 실행중인지 확인해야겠다&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>mariadb</category>
      <category>RDBMS</category>
      <category>설치</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/65</guid>
      <comments>https://hu-studyrecord.tistory.com/65#entry65comment</comments>
      <pubDate>Sun, 10 Nov 2024 22:14:48 +0900</pubDate>
    </item>
    <item>
      <title>[ERROR] JSP 사용하며 발생했던 오류</title>
      <link>https://hu-studyrecord.tistory.com/64</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 코드를 입력했지만 500(내부 서버 오류)가 발생해서 한참 찾았었다&lt;/p&gt;
&lt;pre class=&quot;processing&quot;&gt;&lt;code&gt;out.println(&quot;    &amp;lt;meta charset='UTF-8'&amp;gt;&quot;)
out.println(&quot;    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;&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;원인은 &quot; &quot; 안에 &quot; &quot;를 또 써서 발생한 것이였고, &quot; &quot;안을 ' '로 바꿔야 한다&lt;/p&gt;
&lt;pre class=&quot;sas&quot;&gt;&lt;code&gt;out.println(&quot;    &amp;lt;meta charset='UTF-8'&amp;gt;&quot;)
out.println(&quot;    &amp;lt;meta name='viewport' content='width=device-width, initial-scale=1.0'&amp;gt;&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;이외에도 자바코드를 작성하면서 ' ; '를 빼먹는다던가 대입연산자 ' == ' 와 비교 연산자 ' = '를 잘 썼는지 확인해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SpringBoot/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/64</guid>
      <comments>https://hu-studyrecord.tistory.com/64#entry64comment</comments>
      <pubDate>Sat, 9 Nov 2024 23:07:26 +0900</pubDate>
    </item>
    <item>
      <title>[ERROR] SLF4J: No SLF4J providers were found.</title>
      <link>https://hu-studyrecord.tistory.com/63</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Gradle설정을 한 후 아래와 같은 오류를 볼 수 있는데&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See &amp;lt;https://www.slf4j.org/codes.html#noProviders&amp;gt; for further details.
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
&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;이렇게 Gradle 설정에 추가해주면 된다&lt;/p&gt;
&lt;pre class=&quot;clean&quot;&gt;&lt;code&gt;implementation 'org.apache.logging.log4j:log4j-core:2.19.0'
implementation 'org.apache.logging.log4j:log4j-slf4j2-impl:2.19.0'
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>IntelliJ</category>
      <category>error</category>
      <category>Log4J</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/63</guid>
      <comments>https://hu-studyrecord.tistory.com/63#entry63comment</comments>
      <pubDate>Sat, 9 Nov 2024 23:04:08 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Tomcat 구성 편집 (다국어 처리)</title>
      <link>https://hu-studyrecord.tistory.com/62</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 Tomcat 구성 편집을 통해 Log를 다국어로 처리하는 방법을 설명하려고 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VM 옵션에 한줄만 추가하면 돼서 간편하게 진행할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lqm8F/btsKCYo9RHM/gpIYVZcvsMZmcMbRwNjuvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lqm8F/btsKCYo9RHM/gpIYVZcvsMZmcMbRwNjuvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lqm8F/btsKCYo9RHM/gpIYVZcvsMZmcMbRwNjuvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flqm8F%2FbtsKCYo9RHM%2FgpIYVZcvsMZmcMbRwNjuvk%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;475&quot; height=&quot;405&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;405&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;구성 편집은 Tomcat에서 우클릭후 구성 편집으로 들어가면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(단축키는 Shift + F4 이다)&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;-Dfile.encoding=UTF-8
&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;VM 옵션에 위와 같이 추가하면 한글로 나오는 모습을 확인할 수 있다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1P0Mj/btsKBNbkOoo/QKG8ds7wB9HqIg3c3CJVlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1P0Mj/btsKBNbkOoo/QKG8ds7wB9HqIg3c3CJVlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1P0Mj/btsKBNbkOoo/QKG8ds7wB9HqIg3c3CJVlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1P0Mj%2FbtsKBNbkOoo%2FQKG8ds7wB9HqIg3c3CJVlK%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;670&quot; height=&quot;51&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;51&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;구성 편집은 꼭 설정 후, 서버를 재시작 해야 적용된다&lt;/p&gt;</description>
      <category>IntelliJ</category>
      <category>intellij</category>
      <category>Log</category>
      <category>tomcat</category>
      <category>구성편집</category>
      <category>다국어처리</category>
      <category>한글 처리</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/62</guid>
      <comments>https://hu-studyrecord.tistory.com/62#entry62comment</comments>
      <pubDate>Fri, 8 Nov 2024 17:36:31 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Tomcat 구성 편집</title>
      <link>https://hu-studyrecord.tistory.com/61</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/60&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hu-studyrecord.tistory.com/60&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731051013683&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] Jakarta EE 사용하기&quot; data-og-description=&quot;https://hu-studyrecord.tistory.com/56&amp;nbsp;[WAS] Apache-Tomcat 설치하기설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해&quot; data-og-host=&quot;hu-studyrecord.tistory.com&quot; data-og-source-url=&quot;https://hu-studyrecord.tistory.com/60&quot; data-og-url=&quot;https://hu-studyrecord.tistory.com/60&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zWQN0/hyXs27qEtO/NJfWkRSYGlMMk7cB5p7Mg0/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/u0kZe/hyXsWzFm8G/bqDHKMZJYdZ8Bmk6BPNv5K/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/JOI4V/hyXsZpDZnt/p0yaUkpeaJBQHXygiXUwRK/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/60&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hu-studyrecord.tistory.com/60&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zWQN0/hyXs27qEtO/NJfWkRSYGlMMk7cB5p7Mg0/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/u0kZe/hyXsWzFm8G/bqDHKMZJYdZ8Bmk6BPNv5K/img.png?width=615&amp;amp;height=564&amp;amp;face=0_0_615_564,https://scrap.kakaocdn.net/dn/JOI4V/hyXsZpDZnt/p0yaUkpeaJBQHXygiXUwRK/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171');&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] Jakarta EE 사용하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://hu-studyrecord.tistory.com/56&amp;nbsp;[WAS] Apache-Tomcat 설치하기설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hu-studyrecord.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;포스팅하기에 앞서 Tomcat 설치와, 기본적인 Jakarta EE 설정방법을 알아야한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행시, Tomcat 구성을 편집하는 것이므로 위의 포스팅을 보고 오길 바란다&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;URL 편집&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;URL이란 Uniform Resource Locator의 약자로 웹에서 주어진 고유 리소스 주소로 아래는 URL의 예시이다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1731052690092&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;https://developer.mozilla.org/en-US/search?q=URL&lt;/code&gt;&lt;/pre&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;만약, IntelliJ에서 기본적으로 Tomcat서버를 실행하면 아래와 같이 복잡하게 뜬다 이를 간편하게 보여주고자 하는것이 tomcat&amp;nbsp; 구성 편집이다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0VbWB/btsKDerGrq2/luUznzoEpg0D3GvkmSaFhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0VbWB/btsKDerGrq2/luUznzoEpg0D3GvkmSaFhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0VbWB/btsKDerGrq2/luUznzoEpg0D3GvkmSaFhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0VbWB%2FbtsKDerGrq2%2FluUznzoEpg0D3GvkmSaFhk%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;619&quot; height=&quot;38&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;38&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;b&gt;구성편집(URL) 방법&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;1. Tomcat 에서 우클릭 후 구성 편집 진입&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLRThu/btsKBOOR8Ww/geBkklMZDgKONSPB2PNDT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLRThu/btsKBOOR8Ww/geBkklMZDgKONSPB2PNDT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLRThu/btsKBOOR8Ww/geBkklMZDgKONSPB2PNDT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLRThu%2FbtsKBOOR8Ww%2FgeBkklMZDgKONSPB2PNDT1%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;464&quot; height=&quot;366&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;366&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;2. 구성 편집 창으로 들어가면 배포 진입&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GdiTi/btsKCSo8UyC/6kyw7wAIBMdI5DaooJCLcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GdiTi/btsKCSo8UyC/6kyw7wAIBMdI5DaooJCLcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GdiTi/btsKCSo8UyC/6kyw7wAIBMdI5DaooJCLcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGdiTi%2FbtsKCSo8UyC%2F6kyw7wAIBMdI5DaooJCLcK%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;456&quot; height=&quot;391&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;407&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;3. 제일 아래로 스크롤 후, 애플리케이션 컨텍스트 수정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EyFzR/btsKCwzUfNt/4htQwrBuWrwonarqXLj5Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EyFzR/btsKCwzUfNt/4htQwrBuWrwonarqXLj5Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EyFzR/btsKCwzUfNt/4htQwrBuWrwonarqXLj5Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEyFzR%2FbtsKCwzUfNt%2F4htQwrBuWrwonarqXLj5Vk%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;472&quot; height=&quot;403&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;403&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적용하고 확인해서 서버를 재시작하면 설정한 URL로 진입하는 것을 볼 수 있다!&lt;/li&gt;
&lt;li&gt;만약, 적용이 안됐다면 꼭! Tomcat을 재시작 했는지 (껐다가 켰는지) 확인해봐야한다&lt;/li&gt;
&lt;li&gt;다음 포스팅은 이 구성 편집을 이용해서 Log 를 한글로도 볼 수 있는 방안을 확인해보려고 한다!&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IntelliJ</category>
      <category>intellij</category>
      <category>tomcat</category>
      <category>구성편집</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/61</guid>
      <comments>https://hu-studyrecord.tistory.com/61#entry61comment</comments>
      <pubDate>Fri, 8 Nov 2024 17:07:28 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Jakarta EE 사용하기</title>
      <link>https://hu-studyrecord.tistory.com/60</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/56&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hu-studyrecord.tistory.com/56&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730986175174&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;[WAS] Apache-Tomcat 설치하기&quot; data-og-description=&quot;설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해제)원하는 경로에 압축을 풀어주면 됨여기서는 C:\Java &quot; data-og-host=&quot;hu-studyrecord.tistory.com&quot; data-og-source-url=&quot;https://hu-studyrecord.tistory.com/56&quot; data-og-url=&quot;https://hu-studyrecord.tistory.com/56&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Wm30s/hyXwsKjoZk/W58ncgclrEffHcKNG8v7B1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/HSqri/hyXwsctzsC/hDMGoShksmQdJu8BmxT4K1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/e7Ul9/hyXwu9c12G/E3cDULk8OEZgGY5qfH0fV1/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171&quot;&gt;&lt;a href=&quot;https://hu-studyrecord.tistory.com/56&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hu-studyrecord.tistory.com/56&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Wm30s/hyXwsKjoZk/W58ncgclrEffHcKNG8v7B1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/HSqri/hyXwsctzsC/hDMGoShksmQdJu8BmxT4K1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/e7Ul9/hyXwu9c12G/E3cDULk8OEZgGY5qfH0fV1/img.jpg?width=904&amp;amp;height=1171&amp;amp;face=0_0_904_1171');&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;[WAS] Apache-Tomcat 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;설치 방법https://tomcat.apache.org/ 이동여러 개의 버전 존재(9,10 구조가 다름)버전 중 10을 다운 받음Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해제)원하는 경로에 압축을 풀어주면 됨여기서는 C:\Java&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hu-studyrecord.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ로 JSP를 설정하기에 앞서 Apach-Tomcat이 설치 되어 있어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 해당 경로를 잘 기억 해두길 바란다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(필자는 &quot;C:\JAVA 내에 다운 설치 해놓았다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4nuUe/btsKAZPqgDM/98xAi8xtVANUNKKdQV7qw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4nuUe/btsKAZPqgDM/98xAi8xtVANUNKKdQV7qw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4nuUe/btsKAZPqgDM/98xAi8xtVANUNKKdQV7qw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4nuUe%2FbtsKAZPqgDM%2F98xAi8xtVANUNKKdQV7qw0%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;433&quot; height=&quot;397&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새 프로젝트 생성시, JakaraEE 클릭&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 템플릿 : 웹 애플리케이션&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l4Y00/btsKAg5hikP/uZbMrHgE3QZlsm8JNKuNkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l4Y00/btsKAg5hikP/uZbMrHgE3QZlsm8JNKuNkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l4Y00/btsKAg5hikP/uZbMrHgE3QZlsm8JNKuNkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl4Y00%2FbtsKAg5hikP%2FuZbMrHgE3QZlsm8JNKuNkk%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;434&quot; height=&quot;397&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 새로 만들기 &amp;gt; Tomcat 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 꼭 Tomcat 홈 경로를 apcache-tomcat 설치한 것으로 설정해야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZoKZB/btsKA70PWzF/e71XXLZ7OXp8MggJ3ekZg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZoKZB/btsKA70PWzF/e71XXLZ7OXp8MggJ3ekZg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZoKZB/btsKA70PWzF/e71XXLZ7OXp8MggJ3ekZg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZoKZB%2FbtsKA70PWzF%2Fe71XXLZ7OXp8MggJ3ekZg1%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;484&quot; height=&quot;238&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;315&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트가 무사히 생성되면 아래에 서비스를 눌러 Tomcat 서버를 실행할 수 있음을 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약, Tomcat 서버에서 우클릭을 했을때 실행이 활성화가 안된다면&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;(나는 계속 왜인지,, 5번을 다시 생성했었다...... 분명 옳게 한 것 같은데 나중에 또 안된다면 다른 원인을 찾아봐야겠다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1730986533318&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;http://localhost:8080/Gradle___org_example___demo_1_0_SNAPSHOT_war/ex01.jsp&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;실행이 된다면 위와 같이 url을 들어간다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex01.jsp에 본인 파일명을 써주면 된다&lt;/p&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bluu0D/btsKBpAdjbd/Rr6it9m8WVJPpw0NfYd0jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bluu0D/btsKBpAdjbd/Rr6it9m8WVJPpw0NfYd0jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bluu0D/btsKBpAdjbd/Rr6it9m8WVJPpw0NfYd0jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbluu0D%2FbtsKBpAdjbd%2FRr6it9m8WVJPpw0NfYd0jK%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;422&quot; height=&quot;91&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;91&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 애플리케이션 업데이트를 해야 적용된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IntelliJ</category>
      <category>intellij</category>
      <category>jsp</category>
      <category>tomcat</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <category>프로젝트생성</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/60</guid>
      <comments>https://hu-studyrecord.tistory.com/60#entry60comment</comments>
      <pubDate>Thu, 7 Nov 2024 22:38:38 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] Build Tool (Gradle) 설정</title>
      <link>https://hu-studyrecord.tistory.com/59</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Build Tool&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트에서 소스코드로 실행가능한 Application 을 자동으로 생성해주는 도구&lt;/li&gt;
&lt;li&gt;빌드 자동화를 통해 코드 컴파일, 평가, 종속성 관리, 패키징의 단계를 거쳐 전체 개발 프로세스의 효율성이 향상됨&lt;/li&gt;
&lt;li&gt;개발 시, 필요한 라이브러리를 추가 및 관리 할 수 있으며, 라이브러리 버전을 자동으로 동기화 해줌&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Build Tool 종류&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ant
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;XML기반 빌드 스크립트를 개발하는 것이며 스크립트가 정형화 되어 있지 않고 절차적임&lt;/li&gt;
&lt;li&gt;복잡한 프로젝트에서 Build과정의 이해가 어려우며 스크립트 재사용이 어려움&lt;/li&gt;
&lt;li&gt;외부라이브러리 관리 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Maven
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;XML기반 프로젝트에 필요한 Dependency를 리스트의 형태로 종속성 관리&lt;/li&gt;
&lt;li&gt;Repository에서 자동으로 필요한 라이브러리 파일을 불러올 수 있음&lt;/li&gt;
&lt;li&gt;빌드 스크립트가 정형화되어 있지만, 복잡한 빌드 스크립트 커스텀 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Gradle
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Groovy언어를 사용하고 JVM 기반의 빌드도구로 오픈소스 기반의 Build 자동화 도구&lt;/li&gt;
&lt;li&gt;Ant와 Maven 단점을 보완함(Ant의 역할과 배포 스크립트 기능 모두 사용 가능)&lt;/li&gt;
&lt;li&gt;IntelliJ : 수동 라이브러리 추가 Maven, Gradle : 자동 라이브러리 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;IntelliJ에서 Gradle로 프로젝트 생성하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에서 프로젝트를 진행할때, 직접 라이브러리를 수동으로 추가해서 사용했었는데 Gradle를 사용하여 자동 라이브러리 추가를 이용하려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXaXc5/btsKBoHZo6n/uRv3y4528ZI7GidSbLfMN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXaXc5/btsKBoHZo6n/uRv3y4528ZI7GidSbLfMN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXaXc5/btsKBoHZo6n/uRv3y4528ZI7GidSbLfMN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXaXc5%2FbtsKBoHZo6n%2FuRv3y4528ZI7GidSbLfMN1%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;320&quot; height=&quot;58&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ 는 수동으로 라이브러리를 추가하는 반면 Maven과 Gradle은 자동으로 라이브러리를 추가해줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;445&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dPIQ4V/btsKzIura39/I3B8bJ6jzZLqVpR4pWwOD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dPIQ4V/btsKzIura39/I3B8bJ6jzZLqVpR4pWwOD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dPIQ4V/btsKzIura39/I3B8bJ6jzZLqVpR4pWwOD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdPIQ4V%2FbtsKzIura39%2FI3B8bJ6jzZLqVpR4pWwOD0%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;502&quot; height=&quot;445&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;445&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 생성시, 시스템 빌드를 Gradle로 선택하고 Grdle DSL은 Groovy선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;25&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhXIht/btsKzqU4cZl/kWKKCdUcoSAhE4xGwpBJt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhXIht/btsKzqU4cZl/kWKKCdUcoSAhE4xGwpBJt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhXIht/btsKzqU4cZl/kWKKCdUcoSAhE4xGwpBJt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhXIht%2FbtsKzqU4cZl%2FkWKKCdUcoSAhE4xGwpBJt1%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;672&quot; height=&quot;25&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;25&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정시, 제일 아래에 파란색 바가 뜨는것을 확인할 수 있는데, sdk 모듈을 설정하는 중이므로 설정이 완료될때까지 기다려야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bp3YHd/btsKBdmjPX9/UgQAxXzPerwkcM9MBFJbmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bp3YHd/btsKBdmjPX9/UgQAxXzPerwkcM9MBFJbmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bp3YHd/btsKBdmjPX9/UgQAxXzPerwkcM9MBFJbmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbp3YHd%2FbtsKBdmjPX9%2FUgQAxXzPerwkcM9MBFJbmK%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;664&quot; height=&quot;110&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시로 라이브러리는 maria jdbc를 추가하려고 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러기 위해서는 build.gradle 파일에 들어가 dependencies에 추가해줘야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 원하는 라이브러리가 있다면 아래의 사이트에 들어가서 찾아보도록 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #000000;&quot; contenteditable=&quot;false&quot; href=&quot;https://mvnrepository.com/&quot; data-token-index=&quot;0&quot;&gt;&lt;span&gt;&lt;span&gt;Maven Repository: Search/Browse/Explore&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1ZqKI/btsKzSKivez/ALOVRPpF49iZAojqP2wjt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1ZqKI/btsKzSKivez/ALOVRPpF49iZAojqP2wjt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1ZqKI/btsKzSKivez/ALOVRPpF49iZAojqP2wjt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1ZqKI%2FbtsKzSKivez%2FALOVRPpF49iZAojqP2wjt0%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;419&quot; height=&quot;449&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 Gradel(Short)에서 내용을 찾아 복사한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Allfj/btsKBcAXnCN/ZnlNz3jqXcON4uuPkcZktk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Allfj/btsKBcAXnCN/ZnlNz3jqXcON4uuPkcZktk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Allfj/btsKBcAXnCN/ZnlNz3jqXcON4uuPkcZktk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAllfj%2FbtsKBcAXnCN%2FZnlNz3jqXcON4uuPkcZktk%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;670&quot; height=&quot;375&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가하면 위와 같이 왼쪽바에 외부 라이브러리가 추가된 모습을 확인할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꼭!! 설정을 추가한 뒤에는 코끼리 새로고침을 눌러야 적용된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에서 수동적으로 라이브러리를 추가했었는데 이렇게 Gradle을 사용하니 쉽게 해결할 수 있었다&lt;/p&gt;</description>
      <category>IntelliJ</category>
      <category>build tool</category>
      <category>gradle</category>
      <category>intellij</category>
      <category>maria jdbc</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/59</guid>
      <comments>https://hu-studyrecord.tistory.com/59#entry59comment</comments>
      <pubDate>Thu, 7 Nov 2024 21:45:58 +0900</pubDate>
    </item>
    <item>
      <title>[Error] 참조 오류</title>
      <link>https://hu-studyrecord.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;MariaDB를 사용하면서 발생한 오류를 정리한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블을 생성할때, desc를 통해 테이블 속성을 살펴보아 값을 입력 해야하며 참조를 하는 테이블인 경우 부모 테이블과 자식 테이블 파악이 필요하다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;[create]를 진행하면서 (dept_p)primary key없는 table일 때, (emp_f)foreign key를 가진 테이블을 만들때 오류&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- 참조 오류
ERROR 1005 (HY000): Can't create table `sample`.`emp_f` (errno: 150 &quot;Foreign key constraint is incorrectly formed&quot;)&lt;/code&gt;&lt;/pre&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;[insert]를 진행하면서 (dept_p)primary key의 값이 없을때, (emp_f)에서 insert시도할때 발생하는 오류&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- 참조 오류
--  insert into emp_f values(1000, '홍길동', 'clerk', 10);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`sample`.`emp_f`, CONSTRAINT `emp_f_ibfk_1` FOREIGN KEY (`deptno`) REFERENCES `dept_p` (`deptno`))&lt;/code&gt;&lt;/pre&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;[update, delete] 를 진행할 때, 자식이 참조하고 있는 key는 부모가 업데이트 할 수 없다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- 참조 오류
-- update dept_p set deptno=20 where deptno=10;
-- delete from dept_p where deptno = 10;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`sample`.`emp_f`, CONSTRAINT `emp_f_ibfk_1` FOREIGN KEY (`deptno`) REFERENCES `dept_p` (`deptno`))&lt;/code&gt;&lt;/pre&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;참조되고 있는 테이블을 삭제하려고 할때, 발생하는 오류&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- 참조 오류
-- drop table dept_p;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/58</guid>
      <comments>https://hu-studyrecord.tistory.com/58#entry58comment</comments>
      <pubDate>Wed, 6 Nov 2024 17:18:23 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 환경변수 설정하기</title>
      <link>https://hu-studyrecord.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.azul.com/core-post-download/?endpoint=zulu&amp;amp;uuid=4e890821-b263-4e07-ac94-2206bd08bf9a&quot;&gt;https://www.azul.com/core-post-download/?endpoint=zulu&amp;amp;uuid=4e890821-b263-4e07-ac94-2206bd08bf9a&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Zulu&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle JDK8이 2019년 1월부터 유료화되었기 때문에 Open JDK를 사용한다&lt;/li&gt;
&lt;li&gt;Open JDK와 Oracle JDK는 동일 사양으로 Zulu의 경우 개발 환경과 운영 환경을 통일시킬 수 있다는 장점이 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 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;위의 사이트에서 다운로드로 들어가&amp;nbsp;본인의 사양에 맞게 msi를 설치한다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;환경변수 설정&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;C:\Program Files 경로에 들어가면 zul 설치가 되어있음&lt;/li&gt;
&lt;li&gt;설치 경로로 이동 C:\Program Files\Java\zulu-17 로 이동&lt;/li&gt;
&lt;li&gt;시스템 환경변수 설정 &amp;gt; 환경 변수 &amp;gt; 시스템 변수에서 JAVA_HOME 설정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;C:\\Program Files\\Java\\zulu-17 해당 경로로 환경 변수 수정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Java</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/57</guid>
      <comments>https://hu-studyrecord.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 5 Nov 2024 16:21:21 +0900</pubDate>
    </item>
    <item>
      <title>[WAS] Apache-Tomcat 설치하기</title>
      <link>https://hu-studyrecord.tistory.com/56</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;설치 방법&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://tomcat.apache.org/&quot;&gt;https://tomcat.apache.org/ 이동&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;여러 개의 버전 존재(9,10 구조가 다름)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버전 중 10을 다운 받음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Download(Tomcat10) &amp;rarr; 64-bit Windows zip 설치(압축해제)
&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;여기서는 C:\Java 경로에 압축을 풀어줌&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;실행방법(1)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;C:\Java\apache-tomcat-10.1.31\bin&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;명령 프롬프트에서 해당 경로로 이동&lt;/li&gt;
&lt;li&gt;catalina.bat run 입력하여 서버 시작&lt;/li&gt;
&lt;li&gt;ctrl + c 서버 종료&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;실행방법(2)
&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;startup.bat : 서버 시작&lt;/li&gt;
&lt;li&gt;shutdown.bat : 서버 중지&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rArr; 서버 실행 상태로 아파치 톰캣 서버 요청&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt; (도메인:포트)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://127.0.0.1:8080&quot;&gt;http://127.0.0.1:8080&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;html 지정 디렉토리(Document Root)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 실행이 되지 않는다면, 환경변수의 문제일 가능성이 높다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 블로그에서는 환경 변수 설정에 대한 내용을 쓰고자 한다.&lt;/p&gt;</description>
      <category>IntelliJ</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/56</guid>
      <comments>https://hu-studyrecord.tistory.com/56#entry56comment</comments>
      <pubDate>Tue, 5 Nov 2024 16:17:53 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 브랜치 전략</title>
      <link>https://hu-studyrecord.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/jeong-sys/BeSum/blob/main/Git/git.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/jeong-sys/BeSum/blob/main/Git/git.md&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 링크에 들어가면 git에 대한 특강을 듣고 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;그 중 Git의 브랜치 전략에 대해 정리가 필요할 것 같아 정리하려고 한다&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Git 브랜치 전략&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;여기서, 브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow이다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;브랜치 전략이 없다면 개발 과정에서 어떤 기준으로 개발을 수정해야 하고, 배포를 하는 과정에서 어려움을 겪을 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;Git-Flow 전략&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;1524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEdPF0/btsKwsquKO3/qVg4Ao8Ir1JNlQwCfYZl3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEdPF0/btsKwsquKO3/qVg4Ao8Ir1JNlQwCfYZl3K/img.png&quot; data-alt=&quot;https://nvie.com/posts/a-successful-git-branching-model/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEdPF0/btsKwsquKO3/qVg4Ao8Ir1JNlQwCfYZl3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEdPF0%2FbtsKwsquKO3%2FqVg4Ao8Ir1JNlQwCfYZl3K%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;442&quot; height=&quot;1524&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;1524&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://nvie.com/posts/a-successful-git-branching-model/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git-flow에는 5가지 종류의 브랜치가 있다&lt;/li&gt;
&lt;li&gt;메인 브랜치인 master, develop / 보조 브랜치(feature, release, hotfix)로 볼 수 있다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;main&lt;/b&gt; : 운영 환경에 배포될 수 있는 코드&lt;/li&gt;
&lt;li&gt;&lt;b&gt;develop&lt;/b&gt; : 다음 버전 기능이 담긴 코드&lt;/li&gt;
&lt;li&gt;&lt;b&gt;feature&lt;/b&gt; : 새로운 기능을 개발하기 위한 브랜치&lt;/li&gt;
&lt;li&gt;&lt;b&gt;release&lt;/b&gt; : 새로운 버전의 배포를 위한 브랜치&lt;/li&gt;
&lt;li&gt;&lt;b&gt;hotfix&lt;/b&gt; : 운영환경에서 수정해야할 오류가 있을때 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Git-Flow 흐름&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대부분의 작업은 develop에서 취합하며, 더이상 변동사항이 없는 경우 master로의 병합을 진행한다&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;신규 기능 개발
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;develop 브랜치로부터 feature 브랜치 생성&lt;/li&gt;
&lt;li&gt;feature 브랜치에서 기능 완성시, develop 브랜치에 merge 진행&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;라이브 서버로 배포
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;모든 feature 브랜치가 develop 브랜치에 merge된 경우 release 브랜치 생성&lt;/li&gt;
&lt;li&gt;release 브랜치에서 오류가 확인된 경우, release 브랜치에서 수정 진행&lt;/li&gt;
&lt;li&gt;QA, 테스트가 모두 통과시, release 브랜치는 master 브랜치로 merge&lt;/li&gt;
&lt;li&gt;release 브랜치 내부에서 오류 수정이 진행 됐을 경우, 동기화를 위해 develop브랜치에서도 merge&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;배포 후 관리
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;배포된 라이브 서버(master)에서 버그 발생시, hotfix 브랜치를 생성하여 버그 픽스 진행&lt;/li&gt;
&lt;li&gt;종료된 버그 픽스를 master와 develop 양 쪽에서 merge하여 동기화&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Github-Flow 전략&lt;/h4&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;Git-Flow사용시, 사용하지 않을 브랜치의 규칙도 학습해야하므로 비효율 적이다&lt;/li&gt;
&lt;li&gt;이에 Github-Flow를 사용하므로써 잦은 배포 주기를 가지는 프로젝트에 사용할 수 있다&lt;/li&gt;
&lt;li&gt;자동화 개념이 들어가 있다는 큰 특징이 존재한다&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Github-Flow 흐름&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;브랜치 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;새로운 브랜치는 항상 master 브랜치에서 만든다&lt;/li&gt;
&lt;li&gt;feature 브랜치나 develop 브랜치가 존재하지 않는다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;개발 &amp;amp; 커밋 &amp;amp; 푸쉬
&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;/li&gt;
&lt;li&gt;PR(Pull Request) 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pull request는 코드 리뷰를 도와주는 시스템으로 자신의 코드를 공유하고, 리뷰 받는다&lt;/li&gt;
&lt;li&gt;merge 준비가 완료된경우, master 브랜치로 반영을 요구한다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;리뷰 &amp;amp; 토의&lt;/li&gt;
&lt;li&gt;테스트 &amp;amp; 최종 Merge&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 프로젝트를 진행하면서 Git을 많이 사용했었는데 전략이 대표적으로 2가지로 나뉜다는 것을 알게되었다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에는 main과 develop에서 feature을 생성한 후, 바로 main으로 merge를 진행했었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 다시 살펴보니 많은 과정을 빼먹었다는 것을 알게 되었다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 복잡한 Git-Flow와 달리 Github-Flow를 통해 간편하고 쉽게 배포 과정까지 이를 수 있다는 것을 배웠다&lt;/p&gt;</description>
      <category>Git</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/55</guid>
      <comments>https://hu-studyrecord.tistory.com/55#entry55comment</comments>
      <pubDate>Mon, 4 Nov 2024 18:47:38 +0900</pubDate>
    </item>
    <item>
      <title>[Error] Duplicate</title>
      <link>https://hu-studyrecord.tistory.com/54</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MariaDB 사용하면서 발생하는 문제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730452120968&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ERROR 1062 (23000): Duplicate entry '20' for key 'deptno'&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원인 : 중복이 아니여야 하는 부분에 아무것도 넣지 않은경우 발생하는 것 문제이다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;해결 : 테이블 구조(desc)를 통해 중복 값이 있는경우, delete를 통해 지우던가 다른 값을 삽입해줘야 한다&lt;/p&gt;</description>
      <category>MariaDB/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/54</guid>
      <comments>https://hu-studyrecord.tistory.com/54#entry54comment</comments>
      <pubDate>Fri, 1 Nov 2024 18:09:15 +0900</pubDate>
    </item>
    <item>
      <title>[Error] doesn't have a default value</title>
      <link>https://hu-studyrecord.tistory.com/53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MariaDB 사용하면서 발생하는 문제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730451965688&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ERROR 1364 (HY000): Field 'deptno' doesn't have a default value&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;원인 : null이 아니여야 하는 부분에 아무것도 넣지 않은경우 발생하는 것 문제이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결 : 테이블 구조(desc)를 통해 null 부분을 확인하고 내용을 채워넣는다&lt;/p&gt;</description>
      <category>MariaDB/Error</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/53</guid>
      <comments>https://hu-studyrecord.tistory.com/53#entry53comment</comments>
      <pubDate>Fri, 1 Nov 2024 18:07:55 +0900</pubDate>
    </item>
    <item>
      <title>[SLASH24] 토스 개발자 컨퍼런스</title>
      <link>https://hu-studyrecord.tistory.com/51</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;slash24.png&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1701&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/llU76/btsJjT3jsvP/n3RBIehUhEKwWPuSwB0p4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/llU76/btsJjT3jsvP/n3RBIehUhEKwWPuSwB0p4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/llU76/btsJjT3jsvP/n3RBIehUhEKwWPuSwB0p4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FllU76%2FbtsJjT3jsvP%2Fn3RBIehUhEKwWPuSwB0p4k%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;1360&quot; height=&quot;1701&quot; data-filename=&quot;slash24.png&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;1701&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;올해로 4회째인 토스 개발자 컨퍼런스에 신청하였다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;'No Limit: 풀지 못할 문제는 없다'의 주제로 토스의 개발 문화를 반영했다고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;위 사진은 듣고 싶은 강의 시간표를 짠 것으로 Server와 관련된 강의를 위주로 선택하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;다양한 주제의 발표와 AWS 협업 부스로 운영한다는 뉴스를 보고 기대가 되어 신청하게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;학부생의 신분으로 실제 개발자의 이야기를 들으며 성장하고자 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&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;</description>
      <category>slash24</category>
      <category>개발자컨퍼런스</category>
      <category>토스</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/51</guid>
      <comments>https://hu-studyrecord.tistory.com/51#entry51comment</comments>
      <pubDate>Wed, 28 Aug 2024 17:13:02 +0900</pubDate>
    </item>
    <item>
      <title>[코딩테스트] 준비하기</title>
      <link>https://hu-studyrecord.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작년의 코딩테스트 스터디로 여러 알고리즘을 활용했지만 이후 오랫동안 코딩테스트 문제를 안풀게 되었고&lt;span&gt;&amp;nbsp;&lt;/span&gt;취업을 위해 코딩테스트 준비를 다시 시작하였다. 하지만 문제를 푸는데 오랜 시간이 걸리고 알고리즘이 잘 떠오르지 않는 문제가 생겼다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✏️ 코딩테스트 준비하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래머스 문제 중 PCCP 기출문제 2번을 풀었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3781&quot; data-origin-height=&quot;1842&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baC7Bs/btsIfIoayTG/ugZPam7KbsIBqhhiBjhOPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baC7Bs/btsIfIoayTG/ugZPam7KbsIBqhhiBjhOPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baC7Bs/btsIfIoayTG/ugZPam7KbsIBqhhiBjhOPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaC7Bs%2FbtsIfIoayTG%2FugZPam7KbsIBqhhiBjhOPK%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;1842&quot; data-origin-width=&quot;3781&quot; data-origin-height=&quot;1842&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;BFS를 활용해야하는 문제로 BFS를 할 줄 안다면 금방 풀었겠지만 본인은 BFS를 사용하다는 걸 알기까지도 오랜 시간이 걸렸다. 이에 코딩테스트 공부방법이 잘못된 점을 깨닫고 알고리즘을 활용의 기본기부터 다져보고자한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✏️&lt;span&gt; 책 활용하기&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;1048&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUtc0F/btsIeFTvuBD/Chvl5eK3L81xGlCfJVDS1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUtc0F/btsIeFTvuBD/Chvl5eK3L81xGlCfJVDS1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUtc0F/btsIeFTvuBD/Chvl5eK3L81xGlCfJVDS1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUtc0F%2FbtsIeFTvuBD%2FChvl5eK3L81xGlCfJVDS1k%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;308&quot; height=&quot;1048&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;1048&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;책은 &quot;프로그래머스 코딩 테스트 문제 풀이 전략 : 파이썬 편&quot;으로 학습하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책을 선택한 이유는 코딩테스트를 보는 이유부터 차근차근 문제 풀이의 흐름을 알려주기 때문에 선택하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 기본 이론을 바탕으로 많은 문제를 풀어보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-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>코딩테스트</category>
      <author>HU_717</author>
      <guid isPermaLink="true">https://hu-studyrecord.tistory.com/47</guid>
      <comments>https://hu-studyrecord.tistory.com/47#entry47comment</comments>
      <pubDate>Thu, 27 Jun 2024 15:21:59 +0900</pubDate>
    </item>
  </channel>
</rss>