<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>꿈꾸는 사람의 블로그</title>
    <link>https://pmandocom.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 3 Aug 2026 22:45:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>꿈꾸는 사람_Anthony</managingEditor>
    <image>
      <title>꿈꾸는 사람의 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/2863525/attach/2a74a53e39cc45bdba987b7469a3da81</url>
      <link>https://pmandocom.tistory.com</link>
    </image>
    <item>
      <title>MAC(맥)에서 복수개의 한글파일(HWP) 일괄 PDF변환하기.</title>
      <link>https://pmandocom.tistory.com/150</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Gemini를 활용해 작성됨.&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기본사항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 스크립트는 다음의 환경에서 작성되었고 테스트되었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MacBook Air M5&lt;/li&gt;
&lt;li&gt;응용 프로그램: 한컴 오피스&lt;/li&gt;
&lt;li&gt;한컴 2014 버전을 사용하시는 분께서는 Gemini를 통해 해당 부분을 변경하시면 될 듯합니다.&lt;/li&gt;
&lt;li&gt;폴더구조&lt;br /&gt;~/Documents/hwp2pdf/&lt;br /&gt;└&amp;nbsp;hwp/&lt;br /&gt;└&amp;nbsp;pdf/&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;매뉴얼&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 스크립트가 정상적으로 작동하려면 Mac 시스템에 올바르게 등록하고 권한을 부여해야 합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;스크립트 저장 경로 수정 - &lt;u&gt;코드 3번째 줄&lt;/u&gt;&lt;br /&gt;코드 상단의 set pdfSavePath to &quot;/Users/anthony/Documents/hwp2pdf/pdf/&quot; 부분을 &lt;br /&gt;&lt;b&gt;본인의 Mac에서 PDF가 저장되길 원하는 폴더 경로&lt;/b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;로 변경합니다. (경로 맨 마지막에 반드시 슬래시(/)가 들어가야 합니다.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;스크립트 파일 저장 - &lt;u&gt;Script Editor 사용&lt;br /&gt;&lt;/u&gt;Mac에 내장된 &lt;b&gt;스크립트 편집기(Script Editor)&lt;/b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt; 앱을 열고 코드를 붙여넣습니다. Cmd + S를 눌러 저장하되, 저장 위치를 반드시 ~/Library/Scripts/Folder Action Scripts/ 로 지정합니다. (이름은 HWP_to_PDF.scpt 처럼 영어로 지정하는 것을 권장합니다.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;폴더 액션 연결 - &lt;u&gt;Finder 설정&lt;br /&gt;&lt;/u&gt;HWP 파일을 집어넣을 &lt;b&gt;'입력용 폴더'&lt;/b&gt;를 하나 만듭니다. 해당 폴더를 우클릭하고 &lt;b&gt;[서비스] &amp;gt; [폴더 액션 설정...]&lt;/b&gt;을 클릭합니다. 창이 뜨면 방금 저장한 스크립트를 선택하고 승인합니다.&lt;/li&gt;
&lt;li&gt;접근성 권한 부여 (필수) - &lt;u&gt;시스템 설정&lt;br /&gt;&lt;/u&gt;스크립트가 한글 프로그램을 대신 클릭하고 타이핑하려면 권한이 필요합니다. &lt;b&gt;[시스템 설정] &amp;gt; [개인정보 보호 및 보안] &amp;gt; [손쉬운 사용]&lt;/b&gt;으로 이동합니다. 목록에서 Folder Actions Dispatcher의 스위치를 켜줍니다. (목록에 없다면 Finder에서 /System/Library/CoreServices/로 이동해 직접 드래그해서 추가해 줍니다.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;사용 팁 및 주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;사용 방법:&lt;/b&gt; 설정이 끝났다면, 지정해 둔 입력용 폴더에 .hwp 파일을 끌어다 놓기만 하면 됩니다. 화면이 빠르게 움직이며 지정한 출력 폴더에 깔끔한 한국어 이름의 PDF 파일이 생성됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;마우스/키보드 간섭 주의:&lt;/b&gt; 이 스크립트는 'GUI 스크립팅(화면 UI를 직접 제어하는 방식)'을 사용합니다. 파일이 변환되는 짧은 시간(약 5~10초) 동안은 &lt;b data-index-in-node=&quot;89&quot; data-path-to-node=&quot;16,1,0&quot;&gt;다른 창을 클릭하거나 타이핑을 하면 단축키가 엉뚱한 곳에 입력되어 오류가 날 수 있습니다.&lt;/b&gt; 변환이 끝날 때까지 잠시만 기다려주세요.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0&quot;&gt;속도 조절 (Delay):&lt;/b&gt; 사용하시는 Mac의 성능(M1, M2 등)에 따라 한글 프로그램이 켜지는 속도가 다를 수 있습니다. 오류가 난다면 코드 중간중간에 있는 delay 1.5 같은 숫자(대기 시간)를 2.0 등으로 넉넉하게 늘려주시면 훨씬 안정적으로 작동합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Apple Script 전문&lt;/h3&gt;
&lt;pre id=&quot;code_1775666289540&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;on adding folder items to this_folder after receiving added_items
	
	set pdfSavePath to &quot;/Users/사용자명/Documents/hwp2pdf/pdf/&quot;
	
	repeat with the_item in added_items
		
		tell application &quot;Finder&quot;
			set fileExt to name extension of the_item
			set fileName to name of the_item
		end tell
		
		if fileExt is in {&quot;hwp&quot;, &quot;HWP&quot;} then
			
			-- 원본 파일명 추출 및 안전한 영문 임시 파일명 생성
			set baseName to text 1 thru ((length of fileName) - 4) of fileName
			set finalPdfName to baseName &amp;amp; &quot;.pdf&quot;
			-- 이전 작업과 겹치지 않게 무작위 숫자 부여
			set tempName to &quot;temp_pdf_&quot; &amp;amp; (random number from 1000 to 9999)
			
			tell application &quot;Hancom Office HWP&quot;
				activate
				open the_item
			end tell
			
			delay 1.5
			
			tell application &quot;System Events&quot;
				tell process &quot;한컴오피스 한글&quot;
					
					-- 1. 저장 창 띄우기
					click menu item &quot;PDF로 저장하기...&quot; of menu 1 of menu bar item 3 of menu bar 1
					delay 1.5
					
					-- 2. 폴더 이동 창 띄우기
					keystroke &quot;/&quot;
					delay 0.5
					
					-- 3. 경로 입력 (영문 경로라 깨지지 않음)
					keystroke pdfSavePath
					delay 0.5
					keystroke return
					delay 1.5
					
					-- 4. 한글 이름 대신 '영문 임시 이름' 입력 (타이핑 깨짐 원천 차단)
					keystroke tempName
					delay 0.5
					keystroke return
					
				end tell
			end tell
			
			tell application &quot;Hancom Office HWP&quot;
				activate -- 한글 프로그램을 다시 최상위로 끌어올림
			end tell
			delay 1
			
			tell application &quot;System Events&quot;
				tell process &quot;한컴오피스 한글&quot;
					
					-- 단축키 대신 직접 [파일 &amp;gt; 문서 닫기] 메뉴 클릭
					click menu item &quot;문서 닫기&quot; of menu 1 of menu bar item 3 of menu bar 1
					delay 1
					
					-- 만약 &quot;저장하시겠습니까?&quot; 경고창이 떴다면 '저장 안 함(Don't Save)' 처리
					-- (경고창이 안 떴다면 그냥 넘어감)
					if exists window 1 then
						if title of window 1 is not &quot;&quot; then -- 일반적으로 팝업창은 타이틀이 없음, 문서창은 파일명이 뜸
							-- 경고창의 &quot;저장 안 함&quot; 단축키 (보통 Cmd + Delete 또는 N)
							keystroke &quot;n&quot; using command down
							delay 0.5
						end if
					end if
					
				end tell
			end tell
			-- [핵심] Finder를 통해 임시 파일을 원본 한글 이름으로 변경
			tell application &quot;Finder&quot;
				set targetFolder to POSIX file pdfSavePath as alias
				set loopCount to 0
				
				-- PDF 파일이 디스크에 완전히 생성될 때까지 최대 15초 대기
				repeat while not (exists file (tempName &amp;amp; &quot;.pdf&quot;) of targetFolder)
					delay 1
					set loopCount to loopCount + 1
					if loopCount &amp;gt; 15 then exit repeat
				end repeat
				
				-- 파일이 확인되면 시스템 레벨에서 안전하게 한글 이름으로 덮어쓰기
				if exists file (tempName &amp;amp; &quot;.pdf&quot;) of targetFolder then
					set tempFile to file (tempName &amp;amp; &quot;.pdf&quot;) of targetFolder
					set name of tempFile to finalPdfName
				end if
			end tell
			
		end if
		
	end repeat
	
end adding folder items to&lt;/code&gt;&lt;/pre&gt;</description>
      <category>기타/꿀팁</category>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/150</guid>
      <comments>https://pmandocom.tistory.com/150#entry150comment</comments>
      <pubDate>Thu, 9 Apr 2026 01:49:47 +0900</pubDate>
    </item>
    <item>
      <title>yarn berry에서 nest + prisma 스택 구현하기.</title>
      <link>https://pmandocom.tistory.com/149</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;prerequire: nest cli&lt;/p&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. nest new {원하는 레포 이름} =&amp;gt; yarn 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. yarn set version berry&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. yarn add prisma @yarnpkg/pnpify; yarn&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. yarn prisma init&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. .env 수정, schema 수정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;schema.prisma 수정시, generator output를 커스텀 경로로 두기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CXrMH/btsozT4m2RP/RgHI3M6rq8Nqx5uSsbS5r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CXrMH/btsozT4m2RP/RgHI3M6rq8Nqx5uSsbS5r1/img.png&quot; data-alt=&quot;ㅇ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CXrMH/btsozT4m2RP/RgHI3M6rq8Nqx5uSsbS5r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCXrMH%2FbtsozT4m2RP%2FRgHI3M6rq8Nqx5uSsbS5r1%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;778&quot; height=&quot;204&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ㅇ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. prisma pnpify {db migration | db push | generate 등}&lt;/p&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9tgpr/btsoNVGE3X5/qp7s0RoJjHzQak3s6Hkxg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9tgpr/btsoNVGE3X5/qp7s0RoJjHzQak3s6Hkxg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9tgpr/btsoNVGE3X5/qp7s0RoJjHzQak3s6Hkxg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9tgpr%2FbtsoNVGE3X5%2Fqp7s0RoJjHzQak3s6Hkxg0%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;1600&quot; height=&quot;614&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; yarn을 실행해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/YJ-AnthonyJo/nestjs/tree/main/yarn-berry__with__prisma&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/YJ-AnthonyJo/nestjs/tree/main/yarn-berry__with__prisma&lt;/a&gt;&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/149</guid>
      <comments>https://pmandocom.tistory.com/149#entry149comment</comments>
      <pubDate>Mon, 24 Jul 2023 01:31:39 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] 함수 - 매개변수(parameters)와 인자(arguments)의 관계 &amp;amp; arguments.</title>
      <link>https://pmandocom.tistory.com/147</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;신기하게 생긴 코드를 보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAzMc8/btr0Ob0KuW1/nil3cjm9FU2JK6OssPNVkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAzMc8/btr0Ob0KuW1/nil3cjm9FU2JK6OssPNVkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAzMc8/btr0Ob0KuW1/nil3cjm9FU2JK6OssPNVkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAzMc8%2Fbtr0Ob0KuW1%2Fnil3cjm9FU2JK6OssPNVkK%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;1584&quot; height=&quot;536&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: &lt;a href=&quot;https://ko.javascript.info/promise-basics&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ko.javascript.info/promise-basics&lt;/a&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;음.. new Promise할 때는 resolve, reject 이렇게 두가지의 콜백 함수가 들어가야하는 것 아닌가?(아래와 같이 말이다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1236&quot; data-origin-height=&quot;276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciSxLF/btr0RQ23DFu/AvLn0ImSeZe1YUssirecz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciSxLF/btr0RQ23DFu/AvLn0ImSeZe1YUssirecz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciSxLF/btr0RQ23DFu/AvLn0ImSeZe1YUssirecz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciSxLF%2Fbtr0RQ23DFu%2FAvLn0ImSeZe1YUssirecz1%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;1236&quot; height=&quot;276&quot; data-origin-width=&quot;1236&quot; data-origin-height=&quot;276&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;javascript에 대한 지식이 부족했던지라, 바로 캐치하지 못했다. 이게 자바처럼 메소드 오버로딩의 일종이라고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 프로미스는 하나의 생성자에 대한 정의만 가지고 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1840&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt8BR9/btr0BCziAgn/dqeX9gd8kNaHfs7MDoIurk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt8BR9/btr0BCziAgn/dqeX9gd8kNaHfs7MDoIurk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt8BR9/btr0BCziAgn/dqeX9gd8kNaHfs7MDoIurk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt8BR9%2Fbtr0BCziAgn%2FdqeX9gd8kNaHfs7MDoIurk%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;1840&quot; height=&quot;530&quot; data-origin-width=&quot;1840&quot; data-origin-height=&quot;530&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음 이게 무엇이지? ChatGPT에 물어본다. 자바스크립트의 기본 함수 호출 방식이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아 그렇구나! 근데 그게 뭐지?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mdn에서는 잘 못찾겠다. 없는게 아니라 내가 못찾은 것이겠지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그나마 tcpschool에서 해당 내용을 찾았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://tcpschool.com/javascript/js_function_parameterArgument&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://tcpschool.com/javascript/js_function_parameterArgument&lt;/a&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;함수를 호출할 때 함수의 정의보다 적은 수의 인수가 전달되더라도, 다른 언어와는 달리&amp;nbsp;오류를 발생시키지 않습니다.&lt;br /&gt;이&amp;nbsp;같은 경우&amp;nbsp;자바스크립트는 전달되지 않은&amp;nbsp;나머지 매개변수에&amp;nbsp;자동으로 undefined 값을&amp;nbsp;설정합니다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hp8Pm/btr0H6F6r0u/GrE2rMGzT3qoUSwENzrnb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hp8Pm/btr0H6F6r0u/GrE2rMGzT3qoUSwENzrnb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hp8Pm/btr0H6F6r0u/GrE2rMGzT3qoUSwENzrnb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHp8Pm%2Fbtr0H6F6r0u%2FGrE2rMGzT3qoUSwENzrnb0%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;1120&quot; height=&quot;506&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;506&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;없으면 undefined를 자동으로 설정해준다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 공부하면서 새로운 객체를 알게되었다. 바로 arguments이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매개변수(parameters)와 관계없이, 인자(arguments)들을 모두 받아서 배열과 같이(array-like, 배열은 아니다. length밖에 없다) 저장해두는 객체라고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRX2uW/btr0HtIpuAi/ywDGa2E8mFRN94quVKjlAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRX2uW/btr0HtIpuAi/ywDGa2E8mFRN94quVKjlAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRX2uW/btr0HtIpuAi/ywDGa2E8mFRN94quVKjlAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRX2uW%2Fbtr0HtIpuAi%2FywDGa2E8mFRN94quVKjlAK%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;1192&quot; height=&quot;570&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;570&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;arguments.callee이다.현재 실행중인 함수를 가르킨다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;1406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdEHBE/btr0ObsT5Ws/Kta6X5AHPqqtcoWi8kJ9D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdEHBE/btr0ObsT5Ws/Kta6X5AHPqqtcoWi8kJ9D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdEHBE/btr0ObsT5Ws/Kta6X5AHPqqtcoWi8kJ9D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdEHBE%2Fbtr0ObsT5Ws%2FKta6X5AHPqqtcoWi8kJ9D0%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;846&quot; height=&quot;1406&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;1406&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;ps. strict mode에서는 에러난다. &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;strict mode는 다음에 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ps. caller라는 프로퍼티도 있지만 deprecated 되었다고 한다.&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/147</guid>
      <comments>https://pmandocom.tistory.com/147#entry147comment</comments>
      <pubDate>Sat, 25 Feb 2023 15:20:20 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] '​' == '' 가 False인 경우 (Zero width space) (''=='' false)</title>
      <link>https://pmandocom.tistory.com/146</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;html태그를 제거해야 할 일이 생겼다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qdgrG/btr0BYaxIW6/VrSkxYBkU94O5k9VXJHS31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qdgrG/btr0BYaxIW6/VrSkxYBkU94O5k9VXJHS31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qdgrG/btr0BYaxIW6/VrSkxYBkU94O5k9VXJHS31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqdgrG%2Fbtr0BYaxIW6%2FVrSkxYBkU94O5k9VXJHS31%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;1166&quot; height=&quot;210&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;withoutHtml = '&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;​&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;'.replaceAll(/&amp;lt;[^&amp;gt;]*&amp;gt;?/g, '');&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 제거된 결과가 ''과 같은지 확인하고 싶다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1130&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tJUzC/btr0DVdx0WY/8jv5mz3Yhy1qIWYVDE7AI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tJUzC/btr0DVdx0WY/8jv5mz3Yhy1qIWYVDE7AI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tJUzC/btr0DVdx0WY/8jv5mz3Yhy1qIWYVDE7AI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtJUzC%2Fbtr0DVdx0WY%2F8jv5mz3Yhy1qIWYVDE7AI0%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;1130&quot; height=&quot;246&quot; data-origin-width=&quot;1130&quot; data-origin-height=&quot;246&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;검색을 어떻게 해야할지도 모르겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT에 물어본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;1292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dh5aiy/btr0yIGob0A/lUSkQ7znQIyZtX3aoSAuBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dh5aiy/btr0yIGob0A/lUSkQ7znQIyZtX3aoSAuBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dh5aiy/btr0yIGob0A/lUSkQ7znQIyZtX3aoSAuBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdh5aiy%2Fbtr0yIGob0A%2FlUSkQ7znQIyZtX3aoSAuBK%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;1454&quot; height=&quot;1292&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;1292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;zero-width space가 있어서 그렇다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런게 있었구나! 신기하다. ChatGPT는 위대하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 Zero-Width Space는 왜 쓰는 것일까? 다음을 참고하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sub0709.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sub0709.tistory.com/79&lt;/a&gt;&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/146</guid>
      <comments>https://pmandocom.tistory.com/146#entry146comment</comments>
      <pubDate>Sat, 25 Feb 2023 14:20:24 +0900</pubDate>
    </item>
    <item>
      <title>[Next일지, Chrome 브라우저일지..] 308 Redirect Status Caching 문제.</title>
      <link>https://pmandocom.tistory.com/144</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;# 문제 상황&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next에서 테스트하고 싶은 기능이 있어서 yarn create next-app을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자연스럽게 yarn dev를 하고, http://localhost:3000에 접속하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니!! 이게 뭐지!! 갑자기 index.tsx를 무시하고 /home으로 redirection 되는 것이 아니겠는가!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 황당무개한 일이!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분명 방금 create된 프로젝트이고, next.config.js에도 redirect 설정이 존재하지 않았다.&lt;/p&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;# 문제 원인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 삽질을 했다. 추측이 캐시겠구나..였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Private 창으로 실행시켰다. 잘된다. 역시 맞다.&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;직전 프로젝트의 next.config.js를 살펴본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아닛!! 딱봐도 수상한게 있다. 보안을 했던 사람으로서 CTF때의 직감으로 온몸이 찌릿찌릿 신호를 보내온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;1694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q3s8P/btrZK10vHY6/9G9HI66OpkwzsbwXeuaLvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q3s8P/btrZK10vHY6/9G9HI66OpkwzsbwXeuaLvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q3s8P/btrZK10vHY6/9G9HI66OpkwzsbwXeuaLvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ3s8P%2FbtrZK10vHY6%2F9G9HI66OpkwzsbwXeuaLvk%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;1916&quot; height=&quot;1694&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;1694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;permanent?? 바로 검색 키워드를 날린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@himprover/Nextjs-Redirect-%EC%98%B5%EC%85%98%EC%97%90-Permanent%EB%8A%94-%EB%AD%90%EC%A7%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@himprover/Nextjs-Redirect-%EC%98%B5%EC%85%98%EC%97%90-Permanent%EB%8A%94-%EB%AD%90%EC%A7%80&lt;/a&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;308 state code란다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흠.. 다시 검색한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rQXat/btrZJVM6Dqr/kargNHBFCrBEwDTzknImlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rQXat/btrZJVM6Dqr/kargNHBFCrBEwDTzknImlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rQXat/btrZJVM6Dqr/kargNHBFCrBEwDTzknImlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrQXat%2FbtrZJVM6Dqr%2FkargNHBFCrBEwDTzknImlK%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;1436&quot; height=&quot;590&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;590&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;1488&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx2MPw/btrZJ2S7NOq/QwhdgyVL9ipkFvJUSDlih0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx2MPw/btrZJ2S7NOq/QwhdgyVL9ipkFvJUSDlih0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx2MPw/btrZJ2S7NOq/QwhdgyVL9ipkFvJUSDlih0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx2MPw%2FbtrZJ2S7NOq%2FQwhdgyVL9ipkFvJUSDlih0%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;1488&quot; height=&quot;964&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.ryadel.com/en/clear-google-chrome-redirect-cache-for-single-url-page-howto/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.ryadel.com/en/clear-google-chrome-redirect-cache-for-single-url-page-howto/&lt;/a&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;gt; Network -&amp;gt; Disable Cache를 체크 -&amp;gt; ctrl/cmd + r -&amp;gt; Disable Cache 다시 비활성화(uncheck)&lt;/p&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;짧지만 강렬한 캐시에 대한 경험이었다.(localhost는 브라우저 캐시 알아서 저장 안해주면 안되나.. 어차피 다 개발자들일텐데..)&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/144</guid>
      <comments>https://pmandocom.tistory.com/144#entry144comment</comments>
      <pubDate>Sun, 19 Feb 2023 21:51:35 +0900</pubDate>
    </item>
    <item>
      <title>[Next.js Footer] 적용하기.</title>
      <link>https://pmandocom.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 알아본 방법은 두가지다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;position absolute는 제외한다. 워낙 문제가 많은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# position fixed 를 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시: mantine 페이지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mantine.dev/core/collapse/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mantine.dev/core/collapse/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;z-index를 사용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2974&quot; data-origin-height=&quot;1924&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpHAr9/btrYjf6XVmP/ZnmgR2UI6pZtaBg4cQSoB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpHAr9/btrYjf6XVmP/ZnmgR2UI6pZtaBg4cQSoB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpHAr9/btrYjf6XVmP/ZnmgR2UI6pZtaBg4cQSoB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpHAr9%2FbtrYjf6XVmP%2FZnmgR2UI6pZtaBg4cQSoB0%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;2974&quot; height=&quot;1924&quot; data-origin-width=&quot;2974&quot; data-origin-height=&quot;1924&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;2986&quot; data-origin-height=&quot;1930&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CDeaS/btrYjfeNPzq/YeaWdQIFKKLfvcldbPTkW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CDeaS/btrYjfeNPzq/YeaWdQIFKKLfvcldbPTkW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CDeaS/btrYjfeNPzq/YeaWdQIFKKLfvcldbPTkW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCDeaS%2FbtrYjfeNPzq%2FYeaWdQIFKKLfvcldbPTkW1%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;2986&quot; height=&quot;1930&quot; data-origin-width=&quot;2986&quot; data-origin-height=&quot;1930&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;position을 float, fixed, absolute로 하면, 자식 요소의 높이 값을 잃어버린다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3066&quot; data-origin-height=&quot;1932&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zR6Vh/btrYpnPVUiX/GmB01cz413AK6uOd66KDM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zR6Vh/btrYpnPVUiX/GmB01cz413AK6uOd66KDM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zR6Vh/btrYpnPVUiX/GmB01cz413AK6uOd66KDM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzR6Vh%2FbtrYpnPVUiX%2FGmB01cz413AK6uOd66KDM0%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;3066&quot; height=&quot;1932&quot; data-origin-width=&quot;3066&quot; data-origin-height=&quot;1932&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;position fixed와 bottom 0을 추가하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서, z-index를 없애주거나 반대로 footer가 더 높도록 설정해주면, 항상 하단 고정인 상태로도 구현이 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Feb-07-2023 12-41-36.gif&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nv2vx/btrYkEroNXl/WSAaQuK31PLiMbEpUbXDOk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nv2vx/btrYkEroNXl/WSAaQuK31PLiMbEpUbXDOk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nv2vx/btrYkEroNXl/WSAaQuK31PLiMbEpUbXDOk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/nv2vx/btrYkEroNXl/WSAaQuK31PLiMbEpUbXDOk/img.gif&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;1724&quot; height=&quot;900&quot; data-filename=&quot;Feb-07-2023 12-41-36.gif&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# height 100%를 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법을 적용할 때 필수 사전 작업이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html부터 모든 부모요소의 height가 100%여야한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQlWnB/btrYjWMzOM5/0V6JeRV7UVi3gJyKzlgDP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQlWnB/btrYjWMzOM5/0V6JeRV7UVi3gJyKzlgDP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQlWnB/btrYjWMzOM5/0V6JeRV7UVi3gJyKzlgDP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQlWnB%2FbtrYjWMzOM5%2F0V6JeRV7UVi3gJyKzlgDP0%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;709&quot; height=&quot;214&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 &amp;lt;html&amp;gt; &amp;lt;body&amp;gt; &amp;lt;div&amp;gt; &amp;lt;main&amp;gt; 등등 모든 부모 요소의 height가 100%이어야한다.&lt;/p&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;_app..tsx의 return 에 다음을 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1675740519089&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style global jsx&amp;gt;{`
    html,
    body,
    body &amp;gt; div:first-child,
    div#__next,
    div#__next &amp;gt; div {
      height: 100%;
    }
`}&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;main 태그는 그냥 inline으로 처리하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;26&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uWEnW/btrYjlTGkN8/lSagUOuEIZYpYKOuEAC7Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uWEnW/btrYjlTGkN8/lSagUOuEIZYpYKOuEAC7Z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uWEnW/btrYjlTGkN8/lSagUOuEIZYpYKOuEAC7Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuWEnW%2FbtrYjlTGkN8%2FlSagUOuEIZYpYKOuEAC7Z1%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;410&quot; height=&quot;26&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;26&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1694&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZJirT/btrYquOSOET/u34e2SU9vzUQpyp0G6Esok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZJirT/btrYquOSOET/u34e2SU9vzUQpyp0G6Esok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZJirT/btrYquOSOET/u34e2SU9vzUQpyp0G6Esok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZJirT%2FbtrYquOSOET%2Fu34e2SU9vzUQpyp0G6Esok%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;1694&quot; height=&quot;829&quot; data-origin-width=&quot;1694&quot; data-origin-height=&quot;829&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;1657&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/taZu8/btrYjfFVUce/CkdzpxkSlYO6kvIqHu6Kn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/taZu8/btrYjfFVUce/CkdzpxkSlYO6kvIqHu6Kn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/taZu8/btrYjfFVUce/CkdzpxkSlYO6kvIqHu6Kn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtaZu8%2FbtrYjfFVUce%2FCkdzpxkSlYO6kvIqHu6Kn1%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;1657&quot; height=&quot;787&quot; data-origin-width=&quot;1657&quot; data-origin-height=&quot;787&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;본문 내용을 전체 높이를 차지하게 만들고, footer를 위에 덮는 형식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이렇게 하면 전체 높이를 넘어서게 되므로, translateY(-100%)을 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 덮는 형식이다보니, 본문 내용이 많으면 가려지는 현상이 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 padding으로 footer를 위한 공백 자리를 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;padding이 아니라, 본문 요소의 자식 요소 맨 마지막에 div로 공백 자리를 해주어도 된다.&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/143</guid>
      <comments>https://pmandocom.tistory.com/143#entry143comment</comments>
      <pubDate>Tue, 7 Feb 2023 12:47:01 +0900</pubDate>
    </item>
    <item>
      <title>[node] node version 관리 n vs nvm</title>
      <link>https://pmandocom.tistory.com/142</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.sobyte.net/post/2022-04/node-mvn-n/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.sobyte.net/post/2022-04/node-mvn-n/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1675397961040&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;Node version manager: nvm and n difference&quot; data-og-description=&quot;Learn about the node version manager: nvm and n differences, and how to make a choice.&quot; data-og-host=&quot;www.sobyte.net&quot; data-og-source-url=&quot;https://www.sobyte.net/post/2022-04/node-mvn-n/&quot; data-og-url=&quot;https://www.sobyte.net/post/2022-04/node-mvn-n/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b3Khj8/hyRtW6yuLQ/AGnV2gVdTfa6zgmb1hfnF0/img.png?width=192&amp;amp;height=192&amp;amp;face=0_0_192_192&quot;&gt;&lt;a href=&quot;https://www.sobyte.net/post/2022-04/node-mvn-n/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.sobyte.net/post/2022-04/node-mvn-n/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b3Khj8/hyRtW6yuLQ/AGnV2gVdTfa6zgmb1hfnF0/img.png?width=192&amp;amp;height=192&amp;amp;face=0_0_192_192');&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;Node version manager: nvm and n difference&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Learn about the node version manager: nvm and n differences, and how to make a choice.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.sobyte.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 노드 버전을 자주 바꾸어야하지 않는 이상 n 쓰는 것이 좋을 것 같다.&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/142</guid>
      <comments>https://pmandocom.tistory.com/142#entry142comment</comments>
      <pubDate>Fri, 3 Feb 2023 13:19:48 +0900</pubDate>
    </item>
    <item>
      <title>[AWS EC2] User Data로 노드 설치하기.</title>
      <link>https://pmandocom.tistory.com/141</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;사용할 user data 는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1675397223845&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash -xe
exec &amp;gt; &amp;gt;(tee /var/log/user-data.log|logger -t user-data -s 2&amp;gt;/dev/console) 2&amp;gt;&amp;amp;1
sudo apt-get install -y curl
sudo apt update
sudo apt install -y nodejs
sudo apt install -y npm
sudo npm install -g n
sudo n lts
hash -r&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그(출력) 기록은 /var/log/user-data.log에 남는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hash -r은 node -v 를 한 결과가 lts가 아닌 경우가 존재하기 때문에 리프래시 해주는 것이다.&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://man7.org/linux/man-pages/man1/hash.1p.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://man7.org/linux/man-pages/man1/hash.1p.html&lt;/a&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>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/141</guid>
      <comments>https://pmandocom.tistory.com/141#entry141comment</comments>
      <pubDate>Fri, 3 Feb 2023 13:15:54 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] map에 들어가는 함수의 인자와 index</title>
      <link>https://pmandocom.tistory.com/138</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;map함수에 들어가는 인자는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 첫번째 인자는, iterable 객체의 각 원소 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 두번째 인자는, 해당 원소의 위치(Index)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python으로 보면, enumerate라고 보면 될 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 아래와 같이 작동한다.&lt;/p&gt;
&lt;pre id=&quot;code_1674116932727&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const data: any[] = [1, 2, 3, 4, 5, 6, 0, 1];
const data1: any[] = data.map((v, idx) =&amp;gt; {
    console.log(idx);
	return v;
})
console.log('------');
console.log(data1);

//console 출력
0
1
2
3
4
5
6
7
-----
1
2
3
4
5
6
0
1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/138</guid>
      <comments>https://pmandocom.tistory.com/138#entry138comment</comments>
      <pubDate>Thu, 19 Jan 2023 17:30:55 +0900</pubDate>
    </item>
    <item>
      <title>AWS - Lambda with docker image, LAMBDA_TASK_ROOT</title>
      <link>https://pmandocom.tistory.com/131</link>
      <description>&lt;pre id=&quot;code_1668452796779&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;FROM public.ecr.aws/lambda/python:3.8

# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}

# Install the function's dependencies using file requirements.txt
# from your project folder.

COPY requirements.txt  .
RUN  pip3 install -r requirements.txt --target &quot;${LAMBDA_TASK_ROOT}&quot;

# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ &quot;app.handler&quot; ]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker file을 위와 같이 짜라고 조언한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LAMBDA_TASK_ROOT는 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환경변수 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1847&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0KU7z/btrRd95WLz7/PVWMUypWWptez2slcXUtjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0KU7z/btrRd95WLz7/PVWMUypWWptez2slcXUtjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0KU7z/btrRd95WLz7/PVWMUypWWptez2slcXUtjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0KU7z%2FbtrRd95WLz7%2FPVWMUypWWptez2slcXUtjK%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;1847&quot; height=&quot;390&quot; data-origin-width=&quot;1847&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다. /var/task를 기본 값으로 가지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://peanut159357.tistory.com/106&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://peanut159357.tistory.com/106&lt;/a&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;base image에서 기본으로 정의하는 환경변수를 도커파일에서 사용할 수 있는 것인가?&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 data-ke-size=&quot;size16&quot;&gt;------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가-lambda 기본 환경변수들&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-envvars.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-envvars.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xJyiV/btrQ8JgO0zd/gaiZjuUBmZBa8umofCnKI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xJyiV/btrQ8JgO0zd/gaiZjuUBmZBa8umofCnKI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xJyiV/btrQ8JgO0zd/gaiZjuUBmZBa8umofCnKI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxJyiV%2FbtrQ8JgO0zd%2FgaiZjuUBmZBa8umofCnKI0%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;1219&quot; height=&quot;651&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;651&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>
      <author>꿈꾸는 사람_Anthony</author>
      <guid isPermaLink="true">https://pmandocom.tistory.com/131</guid>
      <comments>https://pmandocom.tistory.com/131#entry131comment</comments>
      <pubDate>Tue, 15 Nov 2022 04:11:39 +0900</pubDate>
    </item>
  </channel>
</rss>