빌런포럼 TOP 20
일간 l 주간 l 월간
1
[PC게임] 란스 시리즈 - 스팀판 트레일러
2
[PC게임] [2025 BEST 게임 어워드] Escape from Duckov - 덕코프 행복 줍줍 게임
3
[PC게임] 한국게임사 다큐 [세이브 더 게임] 예고편
4
[PC게임] [2025 BEST 게임 어워드] 제가 올 한해 제일 재밌게 했던 게임은...
5
[PC게임] [2025 BEST 게임 어워드] 저는 올해 세 게임을 손에 꼽고 싶네요.
6
[PC게임] 세이브 더 게임 넷플릭스 공개
7
[PC게임] [2025 BEST 게임 어워드] 제가 선택한 2025 최고의 게임은요?
8
[온라인게임] [2025 BEST 게임 어워드] 월드 오브 워크래프트 세상에서 오늘도 하루를 시작합니다.
9
[PC게임] [2025 BEST 게임 어워드] 올해 제일 재밌게 한 게임 - 명말
10
[온라인게임] [2025 BEST 게임 어워드] 둠 / 아이온2가 기억에 남네요
11
[PC게임] 32:9 모니터로 플레이하는 게임들
12
[PC게임] [2025 BEST 게임 어워드] 아이와 함께 즐긴 최고의 게임
13
[온라인게임] [2025 BEST 게임 어워드] 흉악스럽지 않은 사양의 배틀로열 게임
14
[온라인게임] [2025 BEST 게임 어워드] 무협 오픈월드 액션 RPG 연운
15
[해외여행] 태국 치앙마이 여행기 (4) 크리스마스
16
[PC게임] [2025 BEST 게임 어워드] 세상에서 가장 어려운 게임(?)
17
[온라인게임] [2025 BEST 게임 어워드] 올해 기억에 남는 게임
18
[PC게임] [2025 BEST 게임 어워드] 사일런트 힐 f - 우리모두 여고생 히나코쨩이 되어보자!!
19
[온라인게임] [2025 BEST 게임 어워드] 해양 대전게임 월드 오브 워쉽!
20
[국내여행] 제부도 일출 다녀왔습니다
인텔 코어 울트라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
6
3
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 2 3 4 5 6 7 8 9 10
신규회원모집이벤트
  • 종합
  • 뉴스/정보
  • 커뮤니티
  • 질문/토론