노션(Notion) 사용법 총정리: 템플릿, 다운로드, 설치 방법까지
노션(Notion) 사용법을 한눈에! 다운로드·설치부터 인기 템플릿 활용법, 요금제 특징까지 정리했습니다. 지금 바로 생산성 극대화하세요.업무 효율을 높이고 싶은데 어디서부터 시작해야 할지 막막하시죠?노션(Notion)은 생산성과 협업을 동시에 잡을 수 있는 올인원 도구입니다.오늘은 노션을 처음 시작하는 분들을 위해 다운로드, 설치 방법, 인기 템플릿 활용법을 총정리했습니다.끝까지 읽으시면, 단순 메모 앱을 넘어 팀과 개인의 워크플로우를 혁신적으로 바꿀 수 있는 방법을 얻을 수 있습니다.1. 노션 사용법 총정리 – 기본 구조 이해하기노션은 페이지와 블록, 워크스페이스라는 세 가지 개념을 중심으로 작동합니다.페이지(Page): 글쓰기, 이미지, 표, 프로젝트 보드 등 모든 작업의 기본 단위블록(Block)..
2025. 8. 25.
귀멸의 칼날 시리즈 정주행 시간·시청 순서 & 무한성편 Q&A·굿즈 완벽 가이드
귀멸의 칼날 전 시리즈 정주행 시간, 최신 시청 순서, 무한성편 관람 Q&A, 특별관 리뷰, 키링 굿즈 구매 팁까지 한눈에 정리했습니다.2025년 여름, 애니메이션 팬들의 심장을 다시 뛰게 만든 작품이 있습니다.바로 귀멸의 칼날 무한성편. 개봉과 동시에 예매율 1위를 기록하며, “이번만큼은 정주행하고 가야 한다”는 목소리가 이어지고 있습니다.이 글에서는 귀멸의 칼날 시리즈 정주행 시간과 공식 시청 순서, 무한성편 관람 Q&A, 특별관 리뷰, 키링 굿즈 구매 팁까지 최신 정보를 모두 정리했습니다.1. 귀멸의 칼날 시리즈 정주행, 총 소요 시간공식 TVA와 극장판 러닝타임을 합산하면 다음과 같습니다.1기 (26화): 약 10시간무한열차편 극장판: 117분2기 환락의 거리편 (11화): 약 4시간 20분3기 ..
2025. 8. 23.
setTimeout(function () {
const dragSensitivity = 0.55; // 드래그 민감도
const clickTolerance = 0; // 클릭 간주 기준 (px), 0: 클릭 시 이동 안함. 클릭 시 이동하려면 1~3값 설정 고려.
const dragRatioThreshold = 0.55; // 배너 너비 대비 드래그 비율, 배너 드래그 후 드롭 시.
const newWindow = 1; // 1: 새 창, 0: 현재 창
const bannerConfigs = [
{
selector: '.sliding-banner-300',
width: 300,
height: 300,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x600-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-150',
width: 320,
height: 150,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/640x300-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-32Ox15O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-250',
width: 300,
height: 250,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back2.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png',
dragDirection: 'left'
},
{
selector: '.sliding-banner-280',
width: 336,
height: 280,
id: '940041',
trackingCode: 'AF2787934', // 본인의 추적 코드로 대체
subId: '',
tsource: '',
background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back3.jpg',
cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-right.png',
arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrow-right.png',
dragDirection: 'right'
}
];
const coupangLink = 'https://link.coupang.com/a/c2PToW'; // 본인의 간편 링크로 대체 📍
function openLink(link) {
if (newWindow) {
window.open(link, '_blank');
} else {
history.replaceState(null, null, window.location.href);
window.location.href = link;
}
}
function generateIframeURL(config) {
return `https://ads-partners.coupang.com/widgets.html?id=${config.id}&template=carousel&trackingCode=${config.trackingCode}&subId=${encodeURIComponent(config.subId || '')}&width=${config.width}&height=${config.height}&tsource=${encodeURIComponent(config.tsource || '')}`;
}
function createBanner(config) {
const iframeURL = generateIframeURL(config);
const wrapper = document.createElement('div');
wrapper.innerHTML = `
당겨주세요!
`;
return wrapper;
}
// trigger event update
function setupDragEvents(dragTarget, animatedBanner, threshold, link, direction) {
let startX = 0, diffX = 0, triggered = false, isDragging = false;
function getClientX(e) {
return e.type.includes('touch') ? e.touches[0].clientX : e.clientX;
}
function triggerOnce() {
if (triggered) return;
triggered = true;
animatedBanner.style.transform = 'translateX(0)';
animatedBanner.classList.add('active');
openLink(link);
}
function startDrag(e) {
if (e.type.startsWith('mouse') && e.button !== 0) return;
isDragging = true;
startX = getClientX(e);
diffX = 0;
triggered = false;
animatedBanner.classList.remove('active');
e.preventDefault();
}
function onDrag(e) {
if (!isDragging) return;
const currentX = getClientX(e);
diffX = currentX - startX;
if ((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0)) {
animatedBanner.style.transform = `translateX(${diffX}px)`;
if (Math.abs(diffX) > threshold) {
triggerOnce();
}
e.preventDefault();
}
}
function endDrag() {
if (!isDragging) return;
isDragging = false;
const dragRatio = Math.abs(diffX) / dragTarget.offsetWidth;
if (Math.abs(diffX) < clickTolerance || (
dragRatio >= dragRatioThreshold &&
((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0))
)) {
triggerOnce();
} else {
animatedBanner.style.transform = 'translateX(0)';
animatedBanner.classList.add('active');
}
diffX = 0;
}
dragTarget.addEventListener('mousedown', startDrag);
dragTarget.addEventListener('mousemove', onDrag);
dragTarget.addEventListener('mouseup', endDrag);
dragTarget.addEventListener('mouseleave', endDrag);
dragTarget.addEventListener('touchstart', startDrag, { passive: false });
dragTarget.addEventListener('touchmove', onDrag, { passive: false });
dragTarget.addEventListener('touchend', endDrag);
}
// end
bannerConfigs.forEach(config => {
const targets = document.querySelectorAll(config.selector);
if (targets.length === 0) return;
targets.forEach(target => {
target.innerHTML = '';
const banner = createBanner(config);
target.appendChild(banner);
const customBox = banner.querySelector('.customBox');
const animatedBanner = banner.querySelector('.customBanner');
const threshold = config.width * dragSensitivity;
setupDragEvents(customBox, animatedBanner, threshold, coupangLink, config.dragDirection);
});
});
}, 100);