<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jhlee의 성장로그</title>
    <link>https://jhlee-dev.tistory.com/</link>
    <description>안녕하세요
개발자 jhlee입니다</description>
    <language>ko</language>
    <pubDate>Wed, 29 Jul 2026 02:46:29 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jhlee_</managingEditor>
    <image>
      <title>jhlee의 성장로그</title>
      <url>https://tistory1.daumcdn.net/tistory/3085301/attach/fb69945795e646309c50ec5a14be5331</url>
      <link>https://jhlee-dev.tistory.com</link>
    </image>
    <item>
      <title>[eclipse] Must declare a named package because this compilation unit is associated to the named module</title>
      <link>https://jhlee-dev.tistory.com/95</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제사항&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bweHsx/btsJEjBCY2B/uIAmj8OCS339nVskjxYcjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bweHsx/btsJEjBCY2B/uIAmj8OCS339nVskjxYcjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bweHsx/btsJEjBCY2B/uIAmj8OCS339nVskjxYcjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbweHsx%2FbtsJEjBCY2B%2FuIAmj8OCS339nVskjxYcjk%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;788&quot; height=&quot;320&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;320&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;2142&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4vfjh/btsJD7ajXOH/106KYcI4giuxPMkDD5qDlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4vfjh/btsJD7ajXOH/106KYcI4giuxPMkDD5qDlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4vfjh/btsJD7ajXOH/106KYcI4giuxPMkDD5qDlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4vfjh%2FbtsJD7ajXOH%2F106KYcI4giuxPMkDD5qDlk%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;2142&quot; height=&quot;248&quot; data-origin-width=&quot;2142&quot; data-origin-height=&quot;248&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해결방안&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 Package Explorer에서 module-info.java파일을 지우자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpAZNE/btsJFDy6x7h/wAUyqrHOjCWzLch0CAJKg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpAZNE/btsJFDy6x7h/wAUyqrHOjCWzLch0CAJKg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpAZNE/btsJFDy6x7h/wAUyqrHOjCWzLch0CAJKg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpAZNE%2FbtsJFDy6x7h%2FwAUyqrHOjCWzLch0CAJKg1%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;640&quot; height=&quot;324&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;324&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1864&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcjGDe/btsJFcu2mMC/qjk3JcviczbwBPw5zzuMQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcjGDe/btsJFcu2mMC/qjk3JcviczbwBPw5zzuMQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcjGDe/btsJFcu2mMC/qjk3JcviczbwBPw5zzuMQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcjGDe%2FbtsJFcu2mMC%2Fqjk3JcviczbwBPw5zzuMQ1%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;1864&quot; height=&quot;320&quot; data-origin-width=&quot;1864&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;module-info.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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1072&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4mgvX/btsJHFqRNzj/nWAGqqa9KGqerWLOEyYGg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4mgvX/btsJHFqRNzj/nWAGqqa9KGqerWLOEyYGg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4mgvX/btsJHFqRNzj/nWAGqqa9KGqerWLOEyYGg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4mgvX%2FbtsJHFqRNzj%2FnWAGqqa9KGqerWLOEyYGg1%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;1072&quot; height=&quot;1080&quot; data-origin-width=&quot;1072&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Create a Java Project &amp;gt; module &amp;gt; Create module-info.java file 선택 후 finish 했기 때문.&lt;br /&gt;java9버전부터 생긴 기능.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, Java 8 &amp;gt; Java 11 &amp;gt; Java 17 &amp;gt; Java 21 순서이며&amp;nbsp;&lt;br /&gt;Java 8 과 버전 1.8 / Java 9는 버전 1.9 / Java 10은 버전 1.10 / Java 11부터는 11로 부른다.&lt;/p&gt;</description>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/95</guid>
      <comments>https://jhlee-dev.tistory.com/95#entry95comment</comments>
      <pubDate>Wed, 18 Sep 2024 19:31:56 +0900</pubDate>
    </item>
    <item>
      <title>[git] git tag로 버전 관리하기</title>
      <link>https://jhlee-dev.tistory.com/91</link>
      <description>&lt;p&gt;git tag를 달아 버전 관리하기&lt;br&gt;브랜치로 관리하다가 좀 더 깔끔하게 관리하는 방법이 없을까 고민하게 되었다.&lt;br&gt;git tag를 이용하여 관리해보기로 함.&lt;/p&gt;
&lt;h3&gt;태그 조회하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 전체 조회
git tag

# 태그 이름으로 검색하기
git tag -l v1.3.*
v1.3.0
v1.3.1
v1.3.2
...&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;태그 원격 저장소에 올리기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 특정 태그 원격 저장소에 올리기
git push origin v1.5.0

# 모든 태그 원격 저장소에 올리기
git push origin --tags&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;태그 삭제하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git tag -d v3.0.0

# 원격 저장소에 있는 태그 삭제하기 `:`를 붙여서 삭제
git push origin :v3.0.0&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;태그로 이동하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 로컬에서
git checkout tags/&amp;lt;tag&amp;gt;

# 태그 기반 branch 생성하기
git checkout tags/&amp;lt;tag&amp;gt; -b &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>web</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/91</guid>
      <comments>https://jhlee-dev.tistory.com/91#entry91comment</comments>
      <pubDate>Mon, 7 Nov 2022 12:51:45 +0900</pubDate>
    </item>
    <item>
      <title>nvm으로 Node.js 버전관리하기 - 명령어 정리</title>
      <link>https://jhlee-dev.tistory.com/90</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;nvm 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/coreybutler/nvm-windows/releases&quot;&gt;공식사이트&lt;/a&gt;에서 nvm-setup.zip 다운&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;version 확인&lt;/h3&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;nvm version&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설치 가능한 버전 리스트&lt;/h3&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;nvm ls-remote --lts&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;특정 버전 node 설치&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;nvm install 18.0.0&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;특정 node 버전 활성화&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;nvm use 18.0.0&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;컴퓨터에 설치된 node 버전 확인&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;nvm list

// 단축 명령어
nvm ls&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>web</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/90</guid>
      <comments>https://jhlee-dev.tistory.com/90#entry90comment</comments>
      <pubDate>Thu, 3 Nov 2022 01:02:11 +0900</pubDate>
    </item>
    <item>
      <title>두 배열 비교하기</title>
      <link>https://jhlee-dev.tistory.com/87</link>
      <description>&lt;h2&gt;교집합&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;let intersection = arr1.filter(x =&amp;gt; arr2.includes(x));&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;차집합&lt;/h2&gt;
&lt;p&gt;arr1 - arr2&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;let difference = arr1.filter(x =&amp;gt; arr2.includes(x));&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;출처: &lt;a href=&quot;https://stackoverflow.com/questions/1187518/how-to-get-the-difference-between-two-arrays-in-javascript&quot;&gt;stackoverflow&lt;/a&gt;&lt;/p&gt;</description>
      <category>코딩 테스트</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/87</guid>
      <comments>https://jhlee-dev.tistory.com/87#entry87comment</comments>
      <pubDate>Sun, 9 Oct 2022 21:18:05 +0900</pubDate>
    </item>
    <item>
      <title>[TIL] 221009 map, filter, Array.from()으로 수열 만들기, 배열 비교하기</title>
      <link>https://jhlee-dev.tistory.com/86</link>
      <description>&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;2022년 10월 09일 일요일&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;오늘 공부한 내용&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 프로그래머스 문제풀이&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;배열의 유사도&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1️⃣ map, filter에 대해 다시 살펴보았다.&lt;br /&gt;프로그래머스를 풀다보니 생각나는대로, 편한 메소드를 골라 사용하고 있었다.&lt;br /&gt;예를 들어, 프로그래머스 문제 중 &lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120583&quot;&gt;중복된 숫자 개수&lt;/a&gt;를 풀 때,&lt;br /&gt;처음에 다음과 같이 코드를 작성 하였다.&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;function solution(array, n) {
    var counter = 0;
    array.map((e, i) =&amp;gt; e === n &amp;amp;&amp;amp; counter++ )
    return counter;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;counter 변수를 선언하고 array를 map으로 돌려서 조건이 만족할때 숫자 counter를 올렸는데 다른 사람들의 풀이를 보니, filter를 사용하는 것이 더 올바른 코드라고 생각되었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;filter&lt;/code&gt;는 &lt;b&gt;조건을 만족하는 요소를 모아 새로운 배열로 반환&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt;은 &lt;b&gt;주어진 함수를 호출한 결과를 모아 새로운 배열로 반환&lt;/b&gt;&lt;br /&gt;하므로 조건으로 요소를 걸러내야하는 상황인 위 문제는 filter를 사용하는 것이 맞다고 생각한다.&lt;br /&gt;따라서 다시 작성한 코드는 다음과 같다&lt;/li&gt;
&lt;li&gt;&lt;code&gt;function solution(array, n) {
  return array.filter((e, i) =&amp;gt; e === n ).length
}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2️⃣ Array.from()&lt;br /&gt;&lt;code&gt;n&lt;/code&gt;이라는 수가 주어졌을 때 1부터 n까지 나열된 배열 만들때,&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Array()와 fill()을 사용하여&lt;/span&gt;&lt;code&gt;Array(n).fill(0).map((e,i)=&amp;gt; i+1);&lt;/code&gt;과 같이 작성하였는데 &lt;br /&gt;Array.from()을 사용한 풀이 보아 정리해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고) Array.from()은 유사배열객체(array-like object)나 &lt;br /&gt;반복가능한 객체(iterable object)를 얕게 복사해 새로운 &lt;code&gt;Array&lt;/code&gt; 객체를 만든다&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;Array.from({ length: 5 }), (value, index) =&amp;gt; i); // [0,1,2,3,4]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Array가 &lt;code&gt;undefined&lt;/code&gt;로 각자리에 초기화 되고, value는 &lt;code&gt;undefined&lt;/code&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;br /&gt;자주 사용한건데 까먹어서 정리함. 합집합, 여집합 등등도 마주치는대로 정리하려고 따로 글 작성&lt;/p&gt;</description>
      <category>TIL</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/86</guid>
      <comments>https://jhlee-dev.tistory.com/86#entry86comment</comments>
      <pubDate>Sun, 9 Oct 2022 21:07:52 +0900</pubDate>
    </item>
    <item>
      <title>코딩테스트 정리</title>
      <link>https://jhlee-dev.tistory.com/85</link>
      <description>&lt;h3&gt;나머지 구하기&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;%&lt;/code&gt; 연산자 사용&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;num1 % num2 &lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;올림, 버림, 반올림 처리하기&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Math.ceil()&lt;/code&gt; 소수점 올림, 정수 반환&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Math.ceil(4);      // 4
Math.ceil(7.04);  // 8
Math.ceil(-0.95);  // -0&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;Math.round()&lt;/code&gt; 반올림 한 수와 가장 가까운 정수 반환.&lt;br&gt;&lt;code&gt;Math.floor()&lt;/code&gt; 같거나 작은수 중에 가장 큰 수 반환&lt;br&gt;&lt;code&gt;Math.truc()&lt;/code&gt; 주어진 값의 소수부분 제거, 숫자의 정수 반환&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// 몫 구하기
parseInt(num1/num2) // parseInt로 정수로 변환
Math.floor(-5.4) // -6, Math.floor() 음수일때는 주의&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;정수인지 판별하기&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Number.isInteger()&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; Number.isInteger(value)&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;제곱근 구하기&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Math.sqrt()&lt;/code&gt; 제곱근 구하기(루트 씌우기)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Math.sqrt(9) //3
Math.sqrt(2); // 1.414213562373095&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;제곱하기&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Math.pow()&lt;/code&gt;&lt;br&gt;&lt;code&gt;**&lt;/code&gt;연산자&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Math.pow(base, exponent) 
// base: 밑,exponent: 지수 값
Math.pow(2, 10);   // 1024
Math.pow(4, 0.5);  // 2 (4의 제곱근)&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;// 연산자  
// 피연산자 ** 지수  
2 ** 3 // 8  
3 ** 2 // 9&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;1부터 n까지 나열된 배열 만들기&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// 방법 1  
Array(n).fill(0).map((v, index) =&amp;gt; index+1)

// 방법 2  
Array.from({ length: 5 }), (value, idnex) =&amp;gt; i);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Array.from() 유사배열객체(array-like object)나 반복가능한 객체(iterable object)를 얕게 복사해 새로운 &lt;code&gt;Array&lt;/code&gt; 객체를 만듦.&lt;/p&gt;
&lt;h3&gt;문자열&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;.toLowerCase()&lt;/code&gt; String.prototype.toLowerCase() 소문자 만들기&lt;br&gt;&lt;code&gt;.toUpperCase()&lt;/code&gt; String.prototype.toUpperCase() 대문자 만들기&lt;br&gt;&lt;code&gt;.substring()&lt;/code&gt; 시작 인덱스부터 종료인덱스 &lt;strong&gt;전&lt;/strong&gt;까지 문자열 자르기&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const str = &amp;#39;broccoli&amp;#39;;
console.log(str.substring(1,3); // ro

// 종료 인덱스 생략시 문자열 끝까지 모든 문자 추출
console.log(str.substrong(3); // ccoli&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/slice&quot;&gt;&lt;code&gt;slice()&lt;/code&gt;&lt;/a&gt; 문자열 일부 추출하여 새로운 문자열 반환, &lt;strong&gt;마지막 인덱스 미포함&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const str = &amp;#39;abcdefgh&amp;#39;;
console.log(str.slice(4)); // &amp;quot;efgh&amp;quot;
console.log(str.slice(2, 4));// &amp;quot;cd&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;배열에서 가장 큰/작은 수&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;spread operator&lt;/code&gt;를 이용하여&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const arr = [3,6,9];
const maxValue = Math.max(...arr)
const minValue = Math.min(...arr)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>코딩 테스트</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/85</guid>
      <comments>https://jhlee-dev.tistory.com/85#entry85comment</comments>
      <pubDate>Mon, 3 Oct 2022 17:48:21 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/JS] 세균증식</title>
      <link>https://jhlee-dev.tistory.com/84</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;링크&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120910&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120910&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;알아야할 내용&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;거듭제곱&lt;/b&gt;&lt;br /&gt;1. Math.pow()&lt;br /&gt;2. 거듭제곱 연산자 &lt;code&gt;**&lt;/code&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;code&gt;**&lt;/code&gt;는 Math.pow()와 동알하지만 BigInt도 가능&lt;/li&gt;
&lt;li&gt;Math.pow(base, exponent)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;base 밑&lt;/li&gt;
&lt;li&gt;exponent 제곱하기 위한 지수 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;제곱근은 Math.sqrt()를 사용하자. 주어진 숫자에 루트를 씌움. ex) Math.squrt(9) // 3&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;// 연산자 **
2 ** 3 // 8
10 ** -1 // 0.1

// Math.pow()
Math.pow(2, 3)  // 8
Math.pow(4, 0.5) // 2&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;소스코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;function solution(n, t) {
    return n * ( 2 ** t); 
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>코딩 테스트</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/84</guid>
      <comments>https://jhlee-dev.tistory.com/84#entry84comment</comments>
      <pubDate>Mon, 3 Oct 2022 17:40:36 +0900</pubDate>
    </item>
    <item>
      <title>[tsconfig] Cannot write file '파일경로/파일명.js' because it would overwrite input file.ts</title>
      <link>https://jhlee-dev.tistory.com/82</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;에러메시지&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cannot write file '파일경로/파일명.js' because it would overwrite input file.ts&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;해결방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. allowJs: true설정을 사용하지 않기&lt;br /&gt;근본적인 해결방법은 아니지만 .js 파일을 사용하지 않을거라면 allowJs: false해서 warning을 없앨수있다. (임시방편) 근본적인 해결방법이 아니기도하고, js 확장자가 필요한 상황이라 다른 방법을 찾아보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.   &lt;code&gt;outDir&lt;/code&gt;를 설정하고 &lt;code&gt;exclude&lt;/code&gt;에 포함시키기&lt;/p&gt;
&lt;pre class=&quot;dts&quot;&gt;&lt;code&gt;{
  compilerOptions: {
      ..., // 생략
    outDir: &quot;dist&quot; // &quot;./&quot; 붙일 필요 없음
  },
  exclude: [&quot;node_modules&quot;, &quot;dist&quot;]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/42609768/typescript-error-cannot-write-file-because-it-would-overwrite-input-file&quot;&gt;출처: stockoverflow&lt;/a&gt;&lt;/p&gt;</description>
      <category>frontend</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/82</guid>
      <comments>https://jhlee-dev.tistory.com/82#entry82comment</comments>
      <pubDate>Tue, 27 Sep 2022 12:19:08 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/JS] 같은 숫자는 싫어</title>
      <link>https://jhlee-dev.tistory.com/81</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;링크&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12906&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12906&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;나의 풀이&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1664205368665&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(arr) {
    var answer = [];
    var first = arr[0];

    answer.push(first);

    for (var i = 1; i &amp;lt; arr.length; i++) {
        if (answer[answer.length - 1] !== arr[i]) {
            answer.push(arr[i])
        }
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 풀이&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1664205782131&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(arr) {
    var answer = arr.filter((val, index) =&amp;gt; {
        return val !== arr[index + 1]
    })
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배운점&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;arr[index+1]은 undefined. 마지막 인덱스의 값과 undefined를 비교함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩 테스트</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/81</guid>
      <comments>https://jhlee-dev.tistory.com/81#entry81comment</comments>
      <pubDate>Tue, 27 Sep 2022 06:25:00 +0900</pubDate>
    </item>
    <item>
      <title>[TypeScript] JSON파일 import하기</title>
      <link>https://jhlee-dev.tistory.com/80</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TS2732: Cannot find module './파일명.json'. Consider using '--resolveJsonModule' to import module&lt;br /&gt;with '.json' extension.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;에서&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// tsconfig.json
&quot;compilerOptions&quot;: {
    // ... 다른 옵션들
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;esModuleInterop&quot;: true,
    &quot;resolveJsonModule&quot;: true
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후, 원하는 곳에서 import하기&lt;/p&gt;</description>
      <category>frontend</category>
      <author>jhlee_</author>
      <guid isPermaLink="true">https://jhlee-dev.tistory.com/80</guid>
      <comments>https://jhlee-dev.tistory.com/80#entry80comment</comments>
      <pubDate>Fri, 16 Sep 2022 12:16:15 +0900</pubDate>
    </item>
  </channel>
</rss>