빌런포럼 TOP 20
일간 l 주간 l 월간
인텔 코어 울트라7
빌런포럼
어느날 갑자기 한국에서의 생활이 좀 지치고 활력이 떨어졌다고 느낀다면? 낯선 외국으로 떠나 새로운 환경에서 맛있는 음식과 신선한 문화를 체험해보는 것은 많은 도움이 된다. 요즘은 한달살기로 대표되는 장기여행이 트렌드다. 대표적인 힐링 플레이스로 꼽히는 태국 치앙마이. 이곳을 여행하고 싶은 한국인을 위해 바로 도움이 될 실전 지식을 소개해 본다. 여권 - 6개월 이상 유효기간이 남았는가? 우선 나에게 여권이 있는지 확인한다. 태국은 관광목적의 한국인이라면 무비자로 90일을 머물수 있는 아주 좋은 국가다. 그렇지만 여권은 있어야 하며 유효기간이 6개월 이상 남아있어야 입국에 문제가 없다. 가장 먼저 체크하자. 여권이 없다고? 그럼 바로 만들자. 가능하면 꼭 복수여권으로 만들자! 항공권과 호텔 - 가능하면 2~3 개월 전에 여행 플랫폼을 이용하자 필자가 처음 태국여행을 했을 때는 직장생활을 하다가 갑자기 외국이 너무도 가고 싶어서였다. 사전 정보도 없었고 준비 시간도 없었기에 지마켓 등에서 여행사가 내놓은 항공권을 구입했다. 왕복으로 60만원이 넘었지만 그때는 그게 정상가격이라고 생각했다. 그런데 나중에 천천히 정보를 알아본 결과, 미리 준비하면 그 절반 가격으로 항공권 구입이 가능했다. '스카이스캐너' 같은 여행 플랫폼을 이용하면 저가 항공권을 실시간으로 알아볼 수 있다. 가능하면 여행 2~3개월 전에 예약구입하도록 하자. 위탁 수하물이 없으면 평균 5만원 정도가 저렴해진다. 위탁 수하물 없이도 스포츠 가방 정도의 7킬로그램 휴대 수하물과 노트북, 배터리 등이 담긴 작은 배낭 정도는 반입 가능하다. 또한 국적기에 아닌 저가 항공사를 선택하고 기내식 등을 포기해서 저렴하게 만들 수 있다. 이러면 태국이라면 편도 15~18만원, 왕복으로 30~40만원으로 항공권을 얻을 수 있다. '트립닷컴' 같은 종합 여행 플랫폼을 추천한다. 이 곳은 기본적으로 신용카드 원화 결제가 가능하며 이중환전 같은 것 없이 확정된 원화만 지불하면 되는 점이 매력적이다. 또한 항공권, 호텔, 기차표 같은 것을 플랫폼 안에서 한꺼번에 구매할 수 있으며 지불과 취소 등의 과정이 매끄러운 편이다. 특히 무료취소가 가능한 호텔이 많이 있어 유연성 있는 여행 일정을 잡을 수 있다. 다만 항공권은 무료취소가 거의 없으며, 무료취소라고 하지만 수수료를 제법 떼가는 항공권도 많으니 주의하자. 기본적으로 태국은 수도인 방콕으로 가는 항공편이 가장 많고 저렴하다. 치앙마이까지 가는 직항편은 숫자도 적고 방콕보다는 비싼 편이다. 하지만 잘 찾아보면 저가 항공사 특가 이벤트 등을 통해 방콕행과 거의 비슷한 가격으로 얻는 기회도 찾을 수 있으니 이럴 때 예매하자. 직항편이 너무 비싸다고 생각하면 방콕을 거쳐서 치앙마이로 갈 수도 있다. 시간대 별로 다르긴 하지만 방콕 - 치앙마이 항공권은 보통 5~8만원 정도로 구입할 수 있다. 숙소는 거의 호텔을 이용하게 되는데 태국은 숙소의 가성비가 매력적이다. 지금은 약간 오른 편이지만 그래도 트립닷컴 기준으로 치앙마이에서 하루 3~4만원이면 더블베드에 에어컨, 욕실, 화장실을 갖춘 개인 룸을 예약할 수 있다. 잘 찾아보면 이 가격에 수영장까지 갖춘 곳도 있다. 일정이 변경됐을 때 숙박 1주일 전까지는 무료로 취소 가능한 방도 제법 많으니 부담없이 예약하자. 전자입국신고서 - 출국 72시간 전에 인터넷으로 작성해서 보내자 오래전 태국은 종이로 된 입국카드를 도착하는 비행기 안에서 작성해야 했다. 그러다 코로나 시기를 거치며 아예 입국카드가 폐지됐다. 그런데 작년부터는 전자입국신고서 제도를 도입했다. 항공권을 예매하면 태국 공항 도착 72시간 전부터 인터넷을 통해 전자입국신고서를 작성해서 보내야 한다. 작성 항목이 보다 많아지고 세부적이 되어 좀 번거로워졌지만, 대신 한국에서 미리 인터넷으로 편안하게 집에서 작성해서 보내고 바로 확정안내를 받을 수 있다. 태국 전자입국신고서 사이트(https://tdac.immigration.go.th/arrival-card/#/home) 에 들어가 작성을 끝내 전송하면 QR코드를 받을 수 있다. 입국심사대에 이 QR코드를 종이 프린트 혹은 스마트폰 화면으로 보여주면 된다. 라고 하는데 실제로는 심사대에서 여권만 보여줘도 내용이 심사관 화면에 뜨기 때문에 바로 통과된다. 환전 - 현금은 우리은행 EXK 카드, 카드 결제는 토스뱅크를 추천 해외여행에 필수적인 건 환전에는 여러 방법이 있다. 태국은 아직까지 신용카드 결제를 받지 않는 가게가 많고 노점 등에서도 QR코드나 현금 만 취급하니 현금이 필수다. 여행산업이 발달한 태국은 다양한 환전 방법을 갖추고 있다. 원화를 그대로 들고 가서 현지 환전소에서 바꾸는 방법도 있고, 국내에서 환율 우대를 받아 달러로 환전해 가지고 간 뒤 현지 환전소를 이용할 수도 있다. 그렇지만 이 방법은 대체로 수수료가 많이 들고 번거로운 방식이다. 가장 추천하지 않는 방식은 공항 환전소에서 바꾸는 것이다. 태국 밧(baht)는 한국에서 마이너한 통화이기에 환율 우대를 거의 받을 수 없어 국내 은행에서는 매우 수수료가 비싼데, 공항에서는 더욱 비싸게 받기 때문이다. 진짜 응급 상황이 아니면 피하자. 그나마 국내에서 명동 사설 환전소를 이용한다면 좀 나은 수수료로 환전할 수 있다, 스마트폰을 잘 이용하는 요즘 세대를 위해 가장 추천하는 방식은 신한은행, 혹은 우리은행 등에서 만들 수 있는 EXK 카드다. 제휴가 되어 있는 현지 태국 은행 ATM을 이용하면 90프로 가량의 환율 우대를 받으면서 현금 인출을 할 때 내야하는 200밧 수수료를 내지 않고 현금을 인출 할 수 있다. 방법은 간단하다. 국내 우리은행에 가서 계좌가 없다면 만들고 나서 EXK카드를 신청하자. 그러면 직불카드와 겸용으로 EXK 마크가 찍힌 카드가 발급된다. 이것으로 태국, 베트남 등 여러 국가에서 환율 우대와 수수료 혜택을 받으며 현지은행에서 현금을 뽑을 수 있다. 태국에서 제휴된 은행 가운데는 카시콘 은행을 추천한다. 녹색 로고로 대표되는 대형 은행으로 공항을 비롯해 대형 쇼핑몰에서 매우 쉽게 찾을 수 있다. 길에도 카시콘 ATM기기가 많지만, 가능하면 은행과 붙어 있는 ATM기기를 이용하자. 기계 고장이나 사용자 실수로 카드를 삼켜버리는 경우가 가끔 있는데, 이럴 때 은행과 붙어 있다면 은행 직원에게 말하면 쉽게 카드를 반환받을 수 있다. 대형 쇼핑몰 위주로 카드 결제를 많이 한다면 토스뱅크의 외화통장도 유용하다. 스마트폰을 통해 환율이 다소 쌀 때 100프로 환율 우대를 받으며 원화를 밧으로 바꿔 놓았다가 결제 때 토스카드를 내밀면 된다. 필자가 이용해본 결과 빅씨 같은 태국 대형 마트 같은 곳에서 결제가 가능했으며 수수료도 전혀 없었다. 쓰고 남은 밧은 나중에 다시 스마트폰으로 간단하게 원화로 환전하면 내 계좌로 돌아온다. 공항에서 호텔로 가는 법 - 그랩/볼트 택시 추천, 공항 서비스 택시도 괜찮다 비행기로 치앙마이 공항에 도착하게 되면 호텔까지 가야 한다. 태국은 수도 방콕을 제외하면 대중교통이 부실한 편이다. 치앙마이에는 지하철이나 시내 버스가 없다. 화물차를 개조한 썽태우, 오토바이를 개조한 툭툭 등이 대중교통 역할을 하고 있으며, 현지 사람들은 개인용 오토바이나 자가용을 이용한다. 치앙마이 공항에 대기하는 일반 택시는 피하자. 미터기 없이 흥정을 하려는 경우도 있고, 바가지 요금을 부를 수도 있다. 추천하는 방법은 한국에서 그랩 혹은 볼트 같은 태국 현지 택시 플랫폼 앱을 설치한 뒤 가서 이용하는 것이다. 그랩보다 볼트가 다소 저렴한 편이며 둘 다 한국 VISA 신용카드를 등록하면 결제 가능하다. 현금 없이 아무 작은 수수료로 이용할 수 있다. 치앙마이 공항 내부에는 무료 와이파이를 이용할 수 있는데 현지 스마트폰을 이용하지 않아도 와이파이를 이용해 카카오 택시 이용하듯 목적지 호텔을 입력하고 픽업 장소를 공항 몇 번 출구 하는 식으로 지정하면 곧 택시가 온다. 이용요금은 필자의 경우 90밧(약 4천5백원)이었다. 만일 스마트폰 사용이 여의치 않는 등 사정이 있다면 공항 서비스 가운데 택시를 불러주는 서비스를 이용하자. 대충 치앙마이 시내라면 150밧(약 7천원) 정도로 이용 가능한데 이 경우는 태국 밧으로 현금지불을 해야한다. 공항 1층에서 직접 찾아보거나 안내데스크에 문의하자. 스마트폰 개통 - 여권을 지참하고 대형 쇼핑몰의 이통사 직영점을 이용하자. 호텔까지 성공적으로 가서 가지고 온 무거운 짐을 풀었다면 그 다음은 스마트폰 개통이다. 요즘 이동통신은 생활필수재인 만큼 최우선으로 개통하도록 하자. 치앙마이 곳곳에 통신사 대리점이 있긴 하지만 자칫 잘못하면 비싼 요금제를 강요당하거나 이상한 상품에 가입할 수 있으니 대형 쇼핑몰에 있는 이통사 직영점을 이용하는 걸 추천한다. 태국 주요 이통사는 에이아이에스(AIS), 디텍(DTAC), 트루무브(TRUMOVE) 세 곳이다. 대략 한국의 SKT, KT, LGU+ 와 비슷한 위치를 차지한다. 예전에는 경쟁이 심해서 파격적으로 저렴한 프로모션 요금제가 나오면서 외국인도 이용할 수 있었지만 지금은 적당히 평준화 되서 어느걸 이용해도 요금 수준은 비슷하다. 필자 개인적으로 추천하는 이통사는 AIS다. 가장 많이 볼 수 있는 이통사이며 미세하게 통화도 조금 더 잘 터진다. 직영점에 가서 '심캇(sim card)' 이라고 말하면 패스포트? 라고 물어본다. 여권이 있는지 묻는 것인데 예스 라고하면 개통을 위한 창구로 안내해 준다. 만일 이심(Esim)을 쓴다면 창구에서 그렇게 말하자. 접수받는 창구 직원은 여권을 확인한 뒤 원하는 통신 사용 기간을 물어본다. 장기여행자면 원먼스, 혹은 써티데이스 라고 대답하자. 한달 요금제가 가장 일반적이고 가성비가 좋다. 그러면 요금제가 적힌 종이 혹은 태블릿 화면을 보여준다. 데이터량과 속도에 따라 차별화된 요금제를 골라야 한다. 이통하면서 유튜브를 많이 보거나 업무까지 전부 하려는 용도라면 좀 비싼 요금제를 선택하면 되지만 보통은 200밧~250밧 정도의 요금제를 고르면 된다. 유심 가격(약 50밧)과 이 요금제를 합친만큼 돈(현금)을 내면 개통을 해 준다. 대략 한달 1만 4천원 정도 요금이면 데이터 8기가바이트 정도를 확보할 수 있다. 이렇게 해서 한국에서 출발해서 태국 치앙마이로 가기 위해 필요한 필수 정보를 알아보았다. 다음에는 치앙마이에서 즐겁게 생활하기 위한 필수 정보를 살펴보도록 하자.
2026.01.21
8
4
jQuery를 4.0.0 마이그레이션 방법 공유합니다. 1단계: jQuery Migrate 플러그인 사용 (가장 중요) jQuery 팀은 업그레이드 시 발생하는 문제를 자동으로 감지하고 해결책을 제시하는 jQuery Migrate 4.0.0 플러그인을 함께 제공합니다. 개발 환경에 추가: 기존 jQuery를 4.0.0으로 교체한 직후, Migrate 플러그인을 로드합니다. <script src="https://code.jquery.com/jquery-4.0.0.js"></script> <script src="https://code.jquery.com/jquery-migrate-4.0.0.js"></script> 2. 브라우저 개발자 도구(F12)의 콘솔창을 확인합니다. 삭제된 함수를 사용 중이라면 경고(Warning)와 함께 교체해야 할 함수 정보가 나타납니다. 3. 코드 수정: 경고가 나타나지 않을 때까지 코드를 수정한 뒤, 최종 배포 시에는 Migrate 플러그인을 제거합니다. 2단계: 삭제된 API를 네이티브 자바스크립트로 교체 4.0.0에서는 예전부터 "사용 권장 안 함(Deprecated)"이었던 유틸리티 함수들이 대거 삭제되었습니다. 이제는 브라우저 내장 함수(Native JS)를 사용해야 합니다. 삭제된 함수 현대적인 대체 코드 (Native JS) jQuery.trim(str) str.trim() jQuery.isArray(obj) Array.isArray(obj) jQuery.parseJSON(str) JSON.parse(str) jQuery.now() Date.now() jQuery.isFunction(obj) typeof obj === "function" jQuery.type(obj) Object.prototype.toString.call(obj) 등 3단계: 브라우저 지원 범위 확인 마이그레이션 전, 서비스의 지원 대상을 확인해야 합니다. IE 10 이하: 더 이상 지원하지 않습니다. 만약 IE 10 이하를 반드시 지원해야 한다면 jQuery 3.x에 머물러야 합니다. IE 11: 지원은 하지만 "최소한의 수준"이며, 다음 버전인 5.0에서는 완전히 제거될 예정입니다. Edge: 레거시 Edge(크로미움 이전 버전) 지원이 중단되었습니다. 4단계: ES 모듈(ESM) 활용 // npm으로 설치한 경우 import $ from 'jquery'; // 브라우저에서 직접 모듈로 호출 <script type="module"> import $ from 'https://code.jquery.com/jquery-4.0.0.js'; $('body').append('<h1>Hello jQuery 4!</h1>'); </script> 5단계: 주요 변경 사항 및 주의점 AJAX 내부 동작 과거에는 $.ajax로 스크립트를 요청하면 인라인으로 실행했으나, 이제는 실제 <script> 태그를 생성하여 실행합니다. 이는 보안 정책(CSP) 준수를 위함입니다. 이벤트 시스템 jQuery.event.props 및 jQuery.event.fixHooks가 제거되었습니다. 아주 오래된 플러그인을 사용 중이라면 이 부분에서 오류가 날 수 있습니다. Trusted Types 보안이 강화된 환경(CSP 설정 등)에서 DOM에 HTML을 삽입할 때 발생하던 보안 경고를 jQuery가 자체적으로 처리하기 시작했습니다. link : 마이그레이션 공식 문서
2026.01.20
0
0
jQuery 4 공식 릴리즈 드디어 나왔군요 (ㅜ.,ㅜ )… 프론트 개발자들의 손가락을 지켜줄 업데이트 인지 확인해 봐야겠어요. 주요 변경 사항과 특징을 요약해보았습니다. 1. 현대적인 아키텍처로 전환 ES 모듈(ESM) 마이그레이션 내부 소스 코드가 AMD 방식에서 ES 모듈 방식으로 완전히 전환 최신 빌드 도구(Webpack, Rollup 등)와의 호환성 <script type="module">을 통해 브라우저에서 직접 모듈 로드 Rollup 도입 패키징 도구를 기존의 선택 방식에서 Rollup으로 변경하여 결과물의 최적화 2. 브라우저 지원 범위 변경 (탈-IE 가속화) IE 10 이하 버전 지원 종료 IE 11은 지원 범위에 포함 향후 출시될 jQuery 5.0에서는 완전히 제거 레거시 Edge(크로미움 이전), iOS 16 미만, Firefox 146 미만 등 오래된 브라우저들에 대한 코드를 정리 3. 보안 및 최신 웹 표준 준수 Trusted Types 지원 보안 가이드라인인 CSP(콘텐츠 보안 정책)를 준수할 수 있도록 Trusted Types를 지원 DOM 조작 시 발생할 수 있는 보안 취약점을 예방 비동기 스크립트 요청 방식 변경 AJAX를 통한 비동기 스크립트 실행 시 인라인 스크립트 대신 <script> 태그를 활용하도록 하여 CSP 오류 발생 가능성을 최소화 4. 코드 정리 및 슬림(Slim) 빌드 최적화 오래된 API 제거 10년 가까이 'deprecated(사용 권장 안 함)' 상태였던 jQuery.trim, jQuery.isArray, jQuery.parseJSON, jQuery.now 등 네이티브 JavaScript 함수(Array.isArray(), JSON.parse() 등)를 사용 더 가벼워진 Slim 빌드 슬림 빌드에서 Deferred와 Callbacks를 제거하여 용량을 더 줄임 Gzip 기준 약 19.5KB 5. 업그레이드 방법 jQuery Migrate 4.x 기존 코드를 4.0으로 옮기는 것을 돕기 위해 마이그레이션 플러그인 함께 출시 사용 시 제거된 API를 사용하는 곳을 찾아 경고 또는 임시로 복구 jQuery는 이제 "모든 브라우저의 호환성 해결사"라는 과거의 역할 대신, 현대 웹 표준, 편리한 문법을 유지, 안정적인 인프라를 추구하는 것 같다. 기존 프로젝트를 운영 중이라면 마이그레이션 가이드를 참고하여 업데이트를 검토해보는 것이 좋다. 자세한건 릴리스를 확인해 주세요, https://blog.jquery.com/2026/01/17/jquery-4-0-0/
2026.01.20
2
1
2026년 Steam 축제 및 할인 일정 2026년 1월 Steam 추리 게임 축제: 1월 12일~1월 19일 Steam 보드게임 축제: 1월 26일~2월 2일 2026년 2월 Steam 타자 게임 축제: 2월 5일~2월 9일(집중 조명 축제) Steam PvP 게임 축제: 2월 9일~2월 16일 Steam 말 게임 축제: 2월 19일~2월 23일(집중 조명 축제) Steam Next Fest 2026년 2월 에디션: 2월 23일~3월 2일 2026년 3월 Steam 타워 디펜스 게임 축제: 3월 9일~3월 16일 2026년 Steam 봄 할인: 3월 19일~3월 26일(계절 할인) Steam 집 및 주택 게임 축제: 3월 30일~4월 6일 2026년 4월 Steam 숨은 그림 및 물체 게임 축제: 4월 9일~4월 13일(집중 조명 축제) Steam 중세 게임 축제: 4월 20일~4월 27일 2026년 5월 Steam 덱빌딩 게임 축제: 5월 4일~5월 11일 Steam 바다 게임 축제: 5월 18일~5월 25일 2026년 6월 Steam 탄막 게임 축제: 6월 8일~6월 15일 Steam Next Fest 2026년 6월 에디션: 6월 15일~6월 22일 2026년 Steam 여름 할인: 6월 25일~7월 9일(계절 할인) 2026년 7월 Steam 소셜 디덕션 게임 축제: 7월 13~7월 16일 Steam 기차 게임 축제: 7월 20일~7월 27일 2026년 8월 Steam 사이버펑크 게임 축제: 8월 3일~8월 10일 Steam 핀 및 페그 게임 축제: 8월 17일~8월 20일 Steam PvE 생존 제작 게임 축제: 8월 31일 ~9월 7일 2026년 9월 Steam 프로그래밍 게임 축제: 9월 10일~9월 14일 Steam 파티 기반 RPG 게임 축제: 9월 14일~9월 21일 2026년 10월 2026년 Steam 가을 할인: 10월 1일~10월 8일(계절 할인) Steam 요리 게임 축제: 10월 12일~10월 19일 Steam Next Fest 2026년 10월 에디션: 10월 19일~10월 26일 Steam 스크림 축제 5: 10월 26일~11월 2일 2026년 11월 Steam 오토 배틀러 RPG 게임 축제: 11월 16일~11월 23일 11월 추가 이벤트: 블랙 프라이데이 할인을 진행하는 게임을 집중 조명하기 위해 '특별 할인' 허브로 트래픽을 유도할 계획입니다. 구체적인 날짜와 세부 사항은 추후 공지해 드릴 예정입니다. 2026년 12월 2026년 Steam 겨울 할인: 2026년 12월 17일~2027년 1월 4일(계절 할인) https://store.steampowered.com/news/group/4145017?emclan=103582791433666425&emgid=493837645658461607
2026.01.16
3
2
처음 글 올리네요. ㅎㅎ Spring boot에서 Tailwind CSS를 사용하고 싶어서 다음과 같은 방식을 고안하게 되었습니다. 저는 템플릿을 Thymeleaf(타임리프)를 좋아해서 이 기준으로 작성하겠습니다. Framework : String boot 4 Template : Thymeleaf(타임리프) CSS : Tailwind CSS 미리 Node.js 설치해 주세요. 우선 프로젝트 하나를 생성합니다. 그 다음 리소스를 생성합니다. 우선 index.html 을 다음과 같은 내용으로 생성합니다. 경로 : src/main/resources/template/index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tailwind TEST</title> </head> <body> <div>Tailwind CSS</div> </body> </html> 그 다음 스타일 시트를 생성합니다. 우선 스타일시트 파일 확인용이라 아무 스타일이나 입력해주세요. 경로 : src/main/resources/static/css/default.css @charset "UTF-8"; html, body { height: 100%; place-items: center; place-self: center; place-content: center; } div { width: 10rem; height: 5rem; margin: 0 auto; background: lightcoral; border: 1px red solid; } 그럼 두 경로에 파일이 보이실 꺼에요. 그다음 index.html head에 다음 테그를 삽입해 주세요. <link rel="stylesheet" href="./../static/css/default.css"> 스타일이 적용되는지 확인합니다. 적용 확인이 되면 그다음 head에 다음 tag를 삽입해 주세요. <!-- Tailwind CSS dynamic Style CDN 스타일 완성후 삭제 --> <script src="https://unpkg.com/@tailwindcss/browser@4"></script> 개발자 모드를 활용해 실시간으로 스타일이 적용되는지 확인해주세요. 확정 된 스타일을 index.html파일에 적용합니다. 이런 식으로 스타일을 적용하여 완성된 스타일을 default.css로 빌드하여 적용해 보도록 하겠습니다. src랑 같은 위치에 node 경로를 생성해주세요. 그 다음 node안에 package.json 파일 생성 후 다음 내용을 입력해 주세요. { "dependencies": { "@tailwindcss/forms": "^0.5.6", "autoprefixer": "^10.4.16", "fs-extra": "^11.1.1", "heroicons": "^2.0.18", "postcss": "^8.4.31", "tailwindcss": "^3.3.3", "update-browserslist-db": "^1.2.3" } } 터미널에서 다음 명령을 실행하세요. npm install 빌드를 정상적으로 실행하기 위해 postcss 설정 파일을 생성합니다. node/postcss.config.js module.exports = { plugins: [ require('tailwindcss'), require('autoprefixer'), ] } 이제 node안에 css파일을 하나 생성합니다. node/default.css 아래의 내용을 추가합니다. @tailwind base; @tailwind components; html, body { @apply h-full place-items-center place-self-center place-content-center; } div { @apply w-[10rem] h-[5rem] mx-auto rounded shadow-lg shadow-black/15 bg-red-200 text-center place-content-center } 다음으로 할 작업은 nodejs 빌드 스크립트 추가입니다. 저는 node폴더에서 실행하는 기준으로 작성하겠습니다. 우선 빌드 대상은 node안에 있어야 함으로 node/tmpl 에 복사하고 빌드하도록 하겠습니다. 우선 node/tmpl 에 복사하는 스크립트를 작성하겠습니다. node/copy.js 파일을 생성합니다. const fsExtra = require('fs-extra'); console.log('Resource init!'); const sourceDirectory1 = './../src/main/resources/templates'; // 원본 디렉토리 경로 const targetDirectory1 = './tmpl/t'; // 대상 디렉토리 경로 console.log('Try copy '${sourceDirectory1}' -> ${targetDirectory1}'); fsExtra.copy(sourceDirectory1, targetDirectory1, err => { if (err) { console.error('Error copying directory:', err); } else { console.log('Directory copied successfully! 1'); } }); console.log('Finished : ${new Date().toISOString()}'); 그 다음 터미널에서 실행해 복사를 확인합니다. node copy.js index.html에서 <script src="https://unpkg.com/@tailwindcss/browser@4"></script> 를 삭제하고 정합니다. 다음은 tailwindcss 빌드 입니다. -i : 인풋 -o : 아웃풋 터미널에서 아래 명령을 실행헤 주세요. npx tailwindcss build -i default.css -o ../src/main/resources/static/css/default.css 그 다음 적용여부를 확인하면 완료입니다. 그리고 빌드를 쉽게 하기 위해 package.json의에 빌드 스크립트를 추가합니다. 빌드 대상 폴더 비우기 rm -rf tmpl 빌드 대상 복사 node copy.js tailwindcss 빌드 tailwindcss build -i default.css -c tailwind.config.js -o 압축버전 빌드 (공백 삭제 등 용량 최적화) --minify 추가 { "scripts": { "css": "rm -rf tmpl && node copy.js && tailwindcss build -i default.css -c tailwind.config.js -o ../src/main/resources/static/assets/v2/css/default.css", "css-min": "rm -rf tmpl && node copy.js && tailwindcss build --minify -i default.css -c tailwind.config.js -o ../src/main/resources/static/assets/v2/css/default.css" }, "dependencies": { "@tailwindcss/forms": "^0.5.6", "autoprefixer": "^10.4.16", "fs-extra": "^11.1.1", "heroicons": "^2.0.18", "postcss": "^8.4.31", "tailwindcss": "^3.3.3", "update-browserslist-db": "^1.2.3" } } 이렇게 하면 빌드 시 아래화 같이 커맨드를 입력하면 됩니다. 일반 : npm run css 압축 : npm run css-min gradle에서 빌드 시 위 내용을 자동 실행 하고 싶으면 build.gradle 다음 내용을 추가하면 됩니다. task nodePreBuild(type: Exec) { // node 폴더 위치를 절대 경로로 계산 workingDir = file("${projectDir}/node") // Windows와 Mac/Linux 호환성 처리 if (System.getProperty('os.name').toLowerCase().contains('windows')) { executable 'cmd' args '/c', 'npm', 'run', 'css' } else { executable 'sh' args '-c', 'npm run css' } // 3. 디버깅을 위한 출력 (Gradle 실행 시 콘솔에 찍힘) doFirst { println "--------- CSS Build Start ---------" println "Working Directory: ${workingDir}" println "Executable: ${executable}" println "Arguments: ${args}" println "-----------------------------------" } } processResources.dependsOn nodePreBuild 궁금하신건 댓글 달아주세요. Tailwind CSS 좋아하는데… 요즘 많이 힘들다고 하네요. 많이 응원해주세요. ㅎㅎ
2026.01.16
1
1
이제 태국 생활도 한달 반 가량 지났네요. 처음에는 두근두근 흥분 상태였지만 슬슬 차분해지며 현지 생활 분위기가 되어 갑니다. 이런 가운데서도 가장 중요한 건 역시 음식! 매일 무엇을 먹으며 즐기느냐 입니다. 매일 비싸고 호화로운 걸 먹지는 않습니다. 그래도 될 수 있도록 매일 다른 음식을 먹어보려고 애씁니다. 다행히 쇼핑몰 푸드코트에는 매우 다양한 메뉴의 음식코너가 있습니다. 시푸드 팟타이는 부드러운 볶음면과 해산물의 감칠맛이 참 좋습니다. 가격은 80밧(약 4천원). 아침식사로는 이런 오믈렛도 좋습니다. 얇은 계란 부침과 돼지고기가 섞인 아래에 있는 밥을 같이 먹으면 든든하죠. 가격은 70밧(약 3500원). 때로는 저녁으로 이런 저렴한 스테이크를 즐길 수도 있습니다. 드레싱을 친 돼지고기 스테이크로 갓 만든 프렌치 프라이와 함께 나옵니다. 가격은 69밧(약 3400원). 그렇지만 이런 일상 음식을 먹다보면 어느 날은 그냥 배터지게 고기를 먹고 싶은 생각도 듭니다. 또한 한국 음식이 생각나기도 하죠. 그럴 때 치앙마이에서 부담적게 찾을 수 있는 곳에 갔습니다. 음식점 이름은 신기하게도 명동! 바로 한국 명동에서 딴 이름입니다. 한국식 삼겹살을 메인으로 하는 고기부페입니다. 그 아래 있는 숫자 259는 뭘까요? 이게 바로 가격입니다. 1인당 259밧(약 12200원)에 거의 모든 음식을 양껏 먹을 수 있습니다. 네 바로 고기 부페입니다. 들어가면 딱 보이는 이곳이 메인 코스인 고기입니다. 삼겹살, 양념 불고기를 비롯해 갖가지 돼지고기와 꼬치 고기가 준비되어 있습니다. 한국식이면 당연히 김치와 나물이 있어야죠? 나름 현지에 맞춘 여러 채소가 준비되어 있습니다. 구워서 그냥 먹는 건 한국식이 아니죠? 쌈채소인 상추와 배추 등이 버섯 양파와 함께 있습니다. 한국식이면 밥도 있어야죠? 아예 밥솥채로 있습니다. 특별히 준비한 다른 부위도 있긴 합니다만 이건 추가 요금을 내고 먹는 고기 입니다. 좋은 점은 고기부페인데 새우 같은 해산물도 기본요금으로 양껏 먹을 수 있다는 점입니다. 최고의 가성비죠! 고기만 먹으면 목 마르겠죠? 옆에는 콜라 같은 탄산음료를 비롯해 아이스티와 슬러시까지 무한리필되는 디스펜서가 있습니다. 고기 다 먹은 후에 땅기는 거? 아이스크림까지도 있습니다. 그 옆에는 작은 케이크도 있어요! 그럼 먹어볼까요? 우선 불판에 새우부터 구웠고요, 삼겹살도 바짝 구워서 먹습니다. 영업시간은 오후 4시 반부터 새벽 2시! 치앙마이 오시는 분은 꼭 한번 와서 드셔보세요!
2026.01.13
6
4
개인적으로 좋아하는 홍콩영화 1탄. 추억을 곱씹어 보고자 올려 봅니다. 저는 80년대 후반 홍콩영화의 황금기를 이끌었던 서극 감독을 무척 좋아합니다. 단, 홍콩이 중국에 반환 된 이후로의 서극 감독 작품 활동은 제외로 하겠습니다. 여튼 80년대 홍콩영화계 거장 서극 감독의 필모 중 명작으로 꼽히는 영화 중 가장 좋아하는 영화. 다들 아시는 작품이라 생각 합니다. 동방불패 (1992) 김용 소설 ‘소오강호’를 각색한 영화로, 임청하의 매력이 철철 넘치는 작품. 국내에서의 인기도 엄청 났었습니다. 임청하를 일약 최고의 전성기로 끌어올려준 작품이며, 남주인공 화산파 영호충 역을 맡은 이연걸은 서극이 직접 중국 본토에서 발굴한 배우로 함께 전성기를 누리게 됩니다. 70년대 임청하 꽃다운 시절,. 유부남과 눈맞는 바람에 미국으로 도망갔다가 동방불패로 성공적인 복귀! 원작 소설에서 동방불패는 메인 빌런이라고 하기 어려운, 최강인줄 알았는데 최강 빌런은 다른 놈인 그런 캐릭인데, 영화에서는 동방불패를 중심으로 파격적인 각색을 했습니다. 이 때문에 원작 파괴 논란도 있었습니다. 절대 무공을 얻었지만 성별이 바뀌어 결국 한 남자의 사랑을 원하는 동방불패 임청하의 연기력과 무협영화의 급을 올려준 아름다운 영상미가 돋보인 작품이라 생각합니다.. 여기에 나온 최강의 무공 “규화보전”은 환관이 만든 무공으로 익히기 위해서는 남성을 포기 해야하는 무서운 무공이죠. 서극 감독은 현란한 와이어 액션과 바늘과 붉은 실을 이용해 임청하의 매섭고도 고혹적인 무공을 잘 표현했습니다. 원작 소설에서 규화보전은 무림을 시끄럽게 하는 요망한 절대 무공으로 나옵니다. 소림사에서 천재 무승이 요망한 무공이라 없애버리는데, 화산파 두 제자가 이를 태우기 전 몰래 읽어 익히게 됩니다. 그중 한 제자는 출가하여 규화보전을 변형한 벽사검법이라는 무공을 만들고, 남은 한 제자가 남긴 규화보전은 일월신교가 화산파를 습격해 빼앗는 과정이 있게됩니다. 무림은 이 벽사검법이 적힌 벽사검보와, 규화보전을 차지하기 위한 피바람이 나는데 화산파 장문인 군자검 악불군, 마누라 몰래 트랜스젠더 되어 파문! 일월신교가 빼앗은 규화보전은 동방불패가 익히고, 벽사검법은 다시 화산파 장문인 악불군이 몰래 익히며 두 명의 트랜스젠더가 탄생하는게 원작이지요. 다시 봐도 또 다시 봐도 괜찮은 영화 동방불패, 새해 첫 영화로 추억을 되새겨 보시는 게 어떨지 추천 드리고, 원작소설 “소오강호”를 아직 읽어 보지 않으셨다만 함께 즐겨 보시길 추천 드립니다.
2026.01.08
2
2
노트북을 쓰던, 데스크탑을 쓰던 외부 주변기기가 많아 질 때마다 필수품으로 등장하는게 USB 허브 입니다. 제 취미인 데스크셋업을 하는 동안 정말 많은 종류의 USB허브를 구매해 써봤는데, 그중 마음에 드는 USB 허브 3종을 골라 소개해 볼까 합니다. 1.베이직기어 버티컬 C타입 8in1 멀티 USB 허브 (USB 3.2, 10Gbps) 샌드블래스팅으로 지문이 묻지않는 알루미늄 하우징으로 고급스럽고 살짝 각도를 준 디자인이 책상위에 두고 쓰기에 무척 안정적입니다. 무엇보다 USB 3.2 (10Gbps) 지원으로 외장SSD 하드 연결하거나 카메라 메모리 연결시 활용도가 좋습니다. 무엇보다 듀얼 칩셋으로 SD카드와 USB가 각자 안정적으로 동작합니다. USB 포트와 SD카드를 담당하는 칩셋을 분리해서 설계해서 SD카드 이용시에 USB 연결 속도에 영향을 주지 않습니다. GL3590 칩셋은 USB3.2 Gen2 칩셋으로 6개의 모든 USB 포트에 10Gbps를 지원합니다. GL3231 칩셋은 USB 3.2 GEN1, Dual UHS-I 메모리 카드 리더 콘트롤러로 SD3.0과 MicroSD 4.0, 최대속도 5Gbps를 지원합니다. PC연결과 5V보조전원 모두 C타입 단자로 구성되어 있습니다. 구매한 USB허브중에 가장 만족도가 높았습니다. 데스크테리어 요소로 부족함 없는 디자인과 안정적인 속도, 연결성이 마음에 들었습니다. 링크 : https://brand.naver.com/basicgear/products/11028357365 2. ORICO USB 3.0 허브 분배기 (7port / 10port) 알리에서 구매한 오리코 USB 허브는 7포트와 10포트 모두 사용중입니다. 알루미늄 하우징에 개별 스위치, DC 전원 어댑터 연결로 여러개의 USB 연결시에도 안정적인 5V /1.5A 전원 출력이 장점입니다. 최근에는 알리 구매시 KR 플러그 어댑터를 제공해 주더군요. 한국에 많이 팔렸나 봅니다. 오리코 USB 허브 분배기는 책상 하단에 부착하여 주변기기를 PC와 직결 하지 않고 허브를 통해 연결중인데 여러개의 USB 주변기기를 연결해도 안정적인 USB 3.0 (5Gpbs) 속도를 지원합니다. 가끔 알리 특가시 7포트 기준 2만원 중반대 이하로 구매 가능합니다. 링크 : https://ko.aliexpress.com/item/1005006627955282.html 3. 유그린 7포트 USB3.0 허브 분배기 알리에서 구매한 유그린 7포트 USB 허브 입니다. 알루미늄 하우징, 개별 스위치 등 만듬새는 오리코와 거의 비슷합니다. 추가적인 특징은 7개의 USB3.0 (5Gbps) 포트중 아래 4개가 BC1.2 지능형 충전 프로토콜을 지원해 7.5W 까지 충전 기능을 제공합니다. 이 제품은 USB 마우스 충전독이나 무선 게임 패드 등 충전하여 사용이 필요한 주변기기 연결에 사용하고 있습니다. 링크 : https://ko.aliexpress.com/item/1005005103205943.html ---- USB 허브 구매시 체크 포인트 ----- 1만원대 4포트 무전원 USB 3.0 허브 제품도 여럿 사용했었는데 대부분 연결되는 주변기기의 전력 사용량을 따라가지 못해 안정적 사용이 어려웠습니다. 게다가 저가 칩셋 사용, 또는 허위 스팩으로 제대로 된 USB 3.0 속도를 내주지 못했습니다. 케이스 하우징이 플라스틱인 경우, 양면 테이프로 고정했다가 추후 때어내는 과정에서 플라스틱이 버티지 못하고 고정부가 부러지거나 본드 접착부위가 벌어지는 경우가 많았습니다. 게다가 몇몇 플라스틱 USB 허브는 시간이 지나면 플라스틱 성형을 위해 넣은 가소제 성분이 공기에 산화되며 끈쩍 거리며 손에 묻는 경험을 했습니다. 이후 저의 USB 허브 구매 철칙은 가격이 조금 나가더라도 알루미늄 하우징 + 유전원으로 고르고 있습니다.
2026.01.07
4
2
작년 11월 27일에 출국해서 어느새 한달이 넘게 훌쩍 지나버렸네요. 그래서 또다시 외국에서 신년을 맞게 됐습니다. 외국에서 혼자 맞이하는 연말연시는 어떻게 지내면 좋을까요? 그냥 집 안에서 유튜브로 한국 제야의 종 타종행사를 보며 맥주를 홀짝거려야 할까요? 그런 차분한 분위기도 나쁘지는 않겠지만 좀 심심하겠죠? 2025년 12월 31일 연말 아침, 제일 먼저 한 것은 빨래입니다. 사실 단기간에 외국에 나갔을 때는 별로 신경쓰지 않아도 됩니다. 그러나 장기로 나가면 빨래문제가 신경쓰이죠. 태국에는 대충 둘러보면 어디에나 10밧 짜리 큰 동전을 넣고 빨래를 할 수 있는 코인 세탁기가 있습니다. 셀프로 세제를 사서 넣고는 세탁기만 잠시 이용하는 방식인데요. 비용이 많이 드는 세탁소 보다 저렴하고 간편합니다. 사용방법은 간단합니다. 세탁물이 차 있지 않은 코인세탁기를 찾아서, 앞에 써있는 금액만큼의 10밧 동전을 투입하고, 가동을 확인한다음, 빨래와 세제를 넣고, 뚜껑을 닫으면 됩니다. 보통 용량이 작은 건 20밧(약 950원), 좀 큰 것은 30밧 혹은 40밧입니다. 좀 큰 곳은 코인식 건조기도 같이 있습니다. 건조기 역시 30밧 혹은 40밧입니다. 마침 햇살도 좋네요. 빨래를 마치고 다 널어놓은 다음 공유 자전거로 강변에 나가봅니다. 치앙마이에는 핑강이라는 큰 강이 서쪽에 흐릅니다. 이곳에 있는 다리를 지나갑니다. 강변에는 이렇게 멋진 전망을 자랑하는 곳에 맥주와 음식을 즐길 수 있는 가게가 있습니다. 좀 비싼 곳이지만 강변 경치를 즐기며 쉴 수 있다는 매력이 있죠. 다만 한강처럼 물이 맑지는 않습니다. 다소 흙탕물에 가까운 점이 아쉽습니다. 자전거 드라이브를 도중 근처 쇼핑몰에서 더위를 식히며 생과일 키위 주스를 한 잔 마십니다. 가격은 50밧(약 2400원). 저녁이 되어 다시 나간 곳은 연말 행사가 벌어지는 나왓랏 다리입니다. 오늘 이곳에서는 연말 방송을 위한 공연, 불꽃놀이가 벌어집니다. 이 행사를 보기 위해 현지인과 관광객이 매우 많이 와 있습니다. 모두 사진을 찍고 주위를 구경하고 있습니다. 아이들을 위한 귀여운 마스코트도 있고요. 어른들을 위한 태국 노래 공연이 방송국 촬영까지 곁들여 성대하게 열렸습니다. 바로 옆의 강변에는 각종 색깔 조명이 켜져 강변을 아름답게 비추고 있습니다. 다리 위 장식도 매우 아름다운 조형물이라 충분한 볼 거리가 되어 주었습니다. 폭죽이 터지는 행사장 아래쪽에서는 야시장이 활발히 열리고 있습니다. 이곳에서 물건도 사고 여러 기념품 구경도 할 수 있죠. 야시장 중간에 있는 황금빛 사원은 골든 처럼 영원히 깨질 수 없는 축복과 평화를 기원하는 듯 합니다. 이렇게 낯선 태국 치앙마이에서도 즐겁게 보내는 연말연시를 소개했습니다. 그럼 모두 즐거운 2026년 한 해 되시길 바랍니다. 해피 뉴 이어!
2026.01.06
4
1
예전에 사둔 샨링 up4가 충전을 해도 바로 방전되면서 휴대용의 역할을 못하더군요. 그래서 배터리만 바꿔볼까하고 분해 영상이나 수리기 같은걸 뒤져봐도 다른 기종만 나오지 up4에 대한 수리기는 찾을 수 없었습니다. 그러다가 샨링 다른 기기 수리영상에서 어떤 분이 댓글로 샨링에서 나오는 휴대용 dac들이 흡착 시키는 도구를 사용해서 전면을 뜯으면 뜯긴다고 하더군요. 그래서 알리에서 샨링 up4 배터리를 찾아보니 도구까지 같이 보내주는걸 찾아서 주문했습니다. 급한 마음에 수리기를 올릴줄 몰라서 제품 수리 하는 사진들을 다 찍진 못했네요. 개인적으로 혹시라도 수리 하고자 하는 분들이 있다면 조금이나마 도움 되시라고 조금 찍은거니 너그러니 봐주세요. 윗 사진은 전면부를 흡착 도구를 사용해 여러번 하다보니 전면부 뜯고 기판을 고정하는 나사 2개를 뺀 이후 기판을 들어낸 사진입니다. 기판 내엔 블루투스 모듈에 연결하는 선과 안에 기판으로 연결되는 선이 있는데 둘다 쉽게 빠지니 전면부를 여시면 배터리와 연결되는 선부터 뽑으시고 나머지 선 2개도 같이 뽑아주세요. 그러면 윗 사진처럼 기판을 드실 수 있습니다. 전 아무것도 모르고 기판에 연결된 나사 2개와 다이얼 고정하는 나사까지 다 풀었는데 이건 풀 필요가 없더라구요. 우선 기판을 들어올리면 하판에 떡하니 붙어있는 배터리를 보실 수 있습니다. 이게 생각보다 엄청 단단하게 붙어있어서 분해하는게 엄청 힘들더군요. 뭐 열풍기나 히팅건 같은게 있으시면 접착제를 녹여서 쉽게 분해하실 수 있으실텐데 전 비몽사몽한 상황에서 뜯어내다보니 하판에 있는 테이프까지 조금 뜯어냈습니다. 교체 작업 생각하시면 히팅건 같은걸 준비하시면 좋을 것 같아요. 배터리 교체 후 조립한 후 충전하는 모습입니다. 풀충 잘 되고 휴대용 dac로 잘 쓰는 중입니다. 혹시라도 배터리 방전되서 못쓰는 분 계신다면 알리에서 배터리 사셔서 교체해서 사용해보시길 권해드립니다. 생각보다 쉬워요.
2026.01.03
5
2
1 2 3 4 5 6 7
신규회원모집이벤트
  • 종합
  • 뉴스/정보
  • 커뮤니티
  • 질문/토론