본문 바로가기

개발 & IT

(64)
MySQL vs PostgreSQL, 뭘 선택해야 할까? 완벽 비교 가이드 프로젝트를 시작할 때 가장 먼저 고민하게 되는 것 중 하나가 바로 데이터베이스 선택입니다. 특히 관계형 데이터베이스(RDB)를 사용하기로 했다면 MySQL과 PostgreSQL 사이에서 고민하게 되는데요.오늘은 두 데이터베이스의 차이점을 실제 사용 경험을 바탕으로 상세히 비교해보겠습니다!🎯 한눈에 보는 비교특징 MySQL PostgreSQL철학빠르고 간단하게정확하고 표준대로속도단순 읽기 빠름 ⚡복잡한 쿼리 빠름 💪학습 난이도쉬움 📚보통 📖확장성제한적매우 유연적합한 프로젝트간단한 웹사이트, 블로그복잡한 비즈니스 로직대표 사용 기업Facebook, YouTubeInstagram, Netflix🔍 주요 차이점 상세 비교1. 데이터 타입의 다양성MySQL - 기본에 충실MySQL은 일반적으로 필요한 데..
🔐 GitHub SSH 인증 설정하기 - 비밀번호 없이 Git 사용하는 방법 GitHub에서 2021년 8월부터 비밀번호 인증을 중단하면서, Git 작업 시 Personal Access Token(PAT)이나 SSH 키를 사용해야 합니다. 오늘은 더 편리하고 안전한 SSH 키 인증 설정 방법을 알아보겠습니다.왜 SSH를 사용해야 할까요?보안: 개인키/공개키 암호화 방식으로 더 안전편리함: 한 번 설정하면 비밀번호 입력 불필요안정성: 토큰 만료 걱정 없음🚀 SSH 키 생성하기1. 기존 SSH 키 확인터미널에서 기존 SSH 키가 있는지 먼저 확인해보세요.ls -la ~/.sshid_rsa, id_ed25519 등의 파일이 있다면 이미 SSH 키가 존재합니다.2. SSH 키 생성기존 키가 없거나 새로 만들고 싶다면 다음 명령어를 실행하세요.ssh-keygen -t ed25519 -C..
Laravel Queue Worker 완벽 가이드: 비동기 작업 처리의 핵심 웹 애플리케이션을 개발하다 보면 시간이 오래 걸리는 작업들을 만나게 됩니다. 이메일 발송, 이미지 처리, 데이터 분석, 외부 API 호출 등이 대표적인 예시죠. 이런 작업들을 동기적으로 처리하면 사용자는 오랫동안 기다려야 하고, 최악의 경우 브라우저 타임아웃이 발생할 수도 있습니다.Laravel Queue Worker는 이러한 문제를 해결하는 강력한 도구입니다. 오늘은 Laravel Queue Worker의 개념부터 설정, 작동 방식까지 자세히 알아보겠습니다.Queue Worker란 무엇인가?Queue Worker는 큐에 쌓인 작업(Job)들을 백그라운드에서 순차적으로 처리하는 프로세스입니다. 마치 은행의 번호표 시스템과 같다고 생각하면 됩니다. 고객(사용자 요청)이 번호표(Job)를 뽑고, 창구 직원(..
Vue3 Carousel에서 화면 줄어들 때 이전 슬라이드가 겹쳐 보이는 문제 해결하기 프로젝트에서 Vue3 Carousel을 사용하다 보면, 해상도가 작아지거나 브라우저 창 크기를 줄였을 때 이전/다음 슬라이드가 화면에 겹쳐서 보이는 문제가 발생할 수 있습니다.처음에는 캐러셀 자체 버그인가 싶었는데, 원인은 뷰포트 영역이 슬라이드 밖 컨텐츠를 잘라내지 못한 것이었습니다.문제 상황아래와 같은 상황이 자주 발생합니다.데스크톱 풀스크린에서는 정상적으로 보임하지만 모바일이나 작은 화면에서는 이전/다음 슬라이드의 일부가 비쳐 보임특히 Motion 애니메이션(x: '50%') 같이 좌우로 이동하는 요소가 있으면 더 심해짐해결 방법해답은 의외로 간단했습니다.뷰포트 영역에 overflow:hidden을 강제로 주는 것만으로 문제를 해결할 수 있었어요..carousel__viewport { overfl..
Vue + Tailwind에서 반응형 메뉴 구현 시 흔히 겪는 문제와 해결법 웹사이트에서 상단 메뉴를 구현할 때, PC에서는 hover로 메뉴가 열리고, 모바일에서는 클릭으로 메뉴가 열리는 방식을 자주 사용합니다.Vue 3 + + TailwindCSS 환경에서 반응형 디자인이 아닌 PC와 동일한 디자인을 적용할 때 겪은 시행착오와 해결 방법을 정리합니다.문제 상황모바일에서 동작을 위해 상위 메뉴 클릭시 모바일 여부와 메뉴 오픈 여부를 체크하여 하위메뉴를 보여주도록 적용한 뒤, PC에서는 hover로 하위 메뉴가 열리지만, 마우스를 아래로 내리는 순간 메뉴가 사라짐모바일에서는 클릭으로 하위 메뉴를 열어야 하는데, viewport가 고정되어 있어 window.innerWidth로는 모바일인지 구분이 안 됨v-show로 메뉴를 열어도 class="hidden"이 같이 적용돼서 메뉴가..
Capacitor에서 앱 아이콘과 스플래시 이미지 자동 생성하기 앱을 배포하려면 각 플랫폼(Android/iOS)에서 요구하는 다양한 해상도의 아이콘과 스플래시 이미지를 준비해야 합니다. 수십 개의 리소스를 직접 만드는 건 너무 번거롭죠.Capacitor는 @capacitor/assets 패키지를 통해 아이콘과 스플래시를 자동으로 생성할 수 있는 기능을 제공합니다. 이번 글에서는 Capacitor 앱에서 아이콘/스플래시를 한 방에 생성하고 앱에 반영하는 방법을 정리합니다.✅ 1. @capacitor/assets 패키지 설치먼저 프로젝트 루트에서 아래 명령으로 필요한 패키지를 설치하세요:npm install @capacitor/assets이 패키지가 있어야 아이콘/스플래시를 생성할 수 있는 capacitor-assets 명령을 사용할 수 있습니다.✅ 2. 원본 이미지 ..
📱 Framework7로 만든 앱을 Android APK로 패키징하는 방법 Framework7은 Vue, React, Svelte 등과 통합해서 사용할 수 있는 강력한 모바일 UI 프레임워크입니다. 이번 글에서는 Framework7 + Vue + Vite 조합으로 만든 프로젝트를 Android에서 실행 가능한 APK 파일로 패키징하는 전 과정을 소개합니다.✅ 1. 프로젝트 빌드 준비먼저 프로젝트 내 웹 자산을 빌드합니다. Vite 기반이라면 아래 명령어로 빌드하면 됩니다:npm run build이 작업을 통해 www 또는 dist 폴더에 index.html과 번들된 자바스크립트 파일들이 생성됩니다.✅ 2. Capacitor 설정 및 Android 플랫폼 추가웹 앱을 네이티브 앱으로 감싸기 위해 Capacitor를 사용합니다.npx cap init질문에 답하며 앱 이름과 ID (..
ref로 제어하는 커스텀 다이얼로그 만들기 (Framework7 + TailwindCSS) 🔧 ref로 제어하는 커스텀 다이얼로그 만들기 (Framework7 + TailwindCSS)이번에는 을 활용한 커스텀 다이얼로그를 직접 만들고, ref를 통해 프로그래밍적으로 제어할 수 있도록 구성해봅시다.✅ 구현 목표다이얼로그의 열기/닫기 기능을 ref로 제어title, message, confirmText, cancelText를 동적으로 전달onConfirm, onCancel 같은 이벤트 핸들러도 동적으로 바인딩🧱 Step 1. CustomDialog.vue 컴포넌트 구현 {{ state.title }} {{ state.message }} {{ state.cancelText }} ..

반응형