Mac에서 안드로이드 화면 미러링 방법 (scrcpy)
·
IT 일반
scrcpy는 Mac에서 안드로이드 기기의 화면을 미러링하고 제어할 수 있는 오픈소스 프로그램입니다. 별도의 비용이나 광고 없이 사용할 수 있습니다.1. 사전 준비 (스마트폰 설정)안드로이드 기기에서 USB 디버깅을 활성화해야 합니다.스마트폰의 설정 - 휴대전화 정보 - 소프트웨어 정보로 이동합니다.빌드 번호를 연속으로 7번 탭하여 개발자 모드를 활성화합니다.다시 설정 메인 화면으로 돌아가 개발자 옵션으로 이동합니다.USB 디버깅 항목을 켭니다.2. scrcpy 설치 (Mac 설정)Homebrew를 이용하여 필요한 패키지를 설치합니다.Mac에서 터미널(Terminal)을 실행합니다.아래 명령어를 순서대로 입력하여 설치를 진행합니다.brew install android-platform-toolsbrew i..
BookManager & viewer (CBZ, EPUB, PDF, TXT)
·
리뷰/제품
만화책 및 전자책 로컬 파일 관리 및 뷰어 데스크톱 앱 소개디지털로 만화책이나 전자책을 소장하다 보면 대량의 파일 구조와 메타데이터를 관리하는 데 번거로움을 겪기 쉽습니다.특히 Kavita, Komga, Calibre 같은 개인 서버나 뷰어를 구축하여 사용한다면,라이브러리가 깔끔하게 정리되어 있어야 원활한 이용이 가능합니다.이번 글에서는 이러한 파일 관리 작업을 데스크톱 환경에서 직관적으로 도와주는 오픈소스 프로젝트, BookManager를 소개합니다. BookManager란?BookManager는 CBZ, ZIP, EPUB, PDF 등의 만화책과 전자책 파일을 로컬 데스크톱에서 정리하고 관리할 수 있도록 개발된 Windows 및 macOS 지원 애플리케이션입니다.압축 파일의 구조를 정리하고, 내부 이미..
CBZ 만화 압축파일 정리 도구 – ComicZIP Optimizer (Comic Archive Optimizer)
·
Programing/공유
ComicZIP OptimizerThis program supports Korean, English, Japanese.The program description on the wiki page is only available in Korean. Please use Chrome's translation feature.ComicZIP Optimizer는 만화 및 코믹스 압축 파일(ZIP, CBZ, CBR, 7Z)을 가장 효율적으로 관리하고 최적화할 수 있는 올인원 라이브러리 도구입니다. 클릭 몇 번만으로 복잡한 압축 파일의 내부 구조를 정리하고, 이미지 파일명을 나만의 규칙대로 일괄 수정할 수 있습니다. 특히 리디북스, 알라딘, Google Books, AniList, Comic Vine 등 다양한 국내외 A..
MySQL 날짜/시간 함수 정리 및 자주 쓰는 패턴 모음 (MySQL Date and Time Functions)
·
Programing/SQL
왜 날짜/시간 처리가 중요한가?데이터베이스를 다루는 실무에서 날짜와 시간은 빠질 수 없는 요소입니다. 예약 시스템, 통계 분석, 매출 집계, 보고서 작성 등 대부분의 업무에서 시간 정보를 다뤄야 하며, MySQL은 이를 위한 다양한 함수를 제공합니다. 하지만 함수가 워낙 많다 보니 초보자부터 숙련자까지 종종 혼동을 겪곤 합니다. 이번 글에서는 MySQL 날짜/시간 함수의 기본과 실무에서 유용하게 쓸 수 있는 패턴들을 정리해보겠습니다.A. 날짜/시간 관련 주요 함수NOW(), CURDATE(), CURTIME()NOW() : 현재 날짜와 시간을 반환합니다.SELECT NOW(); -- 2025-06-30 14:23:12CURDATE() : 현재 날짜만 반환합니다.SELECT CURDATE(); -- 202..
GROUP BY, WHERE와 HAVING의 차이(SQL Basics Explained)
·
Programing/SQL
왜 WHERE와 HAVING이 헷갈릴까?SQL을 공부하다 보면 많은 분들이 이렇게 묻습니다. "도대체 WHERE, HAVING, 그리고 GROUP BY는 어떻게 다른 걸까요?" 특히 집계 함수(Aggregate Function)와 결합될 때 이들 절의 차이가 더욱 중요해집니다. 이 글에서는 각 절의 쓰임과 차이를 단계별로 이해하기 쉽게 풀어보겠습니다.WHERE란 무엇인가요?"WHERE"는 그룹핑 전에 각 레코드를 걸러내는 조건절입니다. 마치 요리 전에 재료 중에서 상한 재료를 미리 골라내는 것과 같다고 보면 됩니다.예제SELECT *FROM memberWHERE city = 'Seoul';이 쿼리는 Seoul에 사는 회원만 선택합니다.GROUP BY란 무엇인가요?"GROUP BY"는 같은 값을 가진 데이..
WHERE 절과 JOIN에서의 쿼리 순서, 정말 중요할까?
·
Programing/SQL
JOIN 순서와 WHERE 조건 순서, 성능에 영향 있을까?SQL을 다루다 보면 자주 듣게 되는 이야기 중 하나가 "JOIN 순서나 WHERE 조건의 순서가 쿼리 성능에 영향을 준다"는 말입니다. 초보자들이 이 부분에서 혼란을 겪는 이유는, 실제로 눈으로 보이는 SQL 작성 순서와 DB 엔진 내부에서 처리되는 순서가 다르기 때문입니다.이번 글에서는 JOIN과 WHERE 절의 순서가 정말 성능에 얼마나 영향을 주는지, 실무에서 어떤 점을 고려해야 하는지를 살펴보겠습니다.SQL 실행 순서 이해하기많은 개발자들이 SQL 쿼리를 작성할 때 SELECT 문을 위에서 아래로 순차적으로 읽습니다. 하지만 DB가 SQL을 처리하는 논리적 순서는 다음과 같습니다:FROM → JOIN → WHERE → GROUP BY →..
Mockaroo로 대용량 테스트 데이터 쉽게 생성하기
·
Programing/SQL
테스트 데이터, 왜 중요한가요?애플리케이션 개발, QA, 시연, 혹은 로드 테스트를 하다 보면 반드시 필요한 것이 있습니다. 바로 "테스트 데이터"입니다.개발 단계에서 더미 데이터를 이용하면 화면과 기능을 실제처럼 검증할 수 있습니다.QA에서는 다양한 시나리오를 반복적으로 점검해야 하므로 대량의 가상 데이터가 필요합니다.클라이언트에게 시연하거나 성능 부하 테스트를 할 때도 실제와 비슷한 데이터가 있어야 신뢰성이 높아집니다.그러나 직접 가상의 데이터를 일일이 작성하기는 번거롭고 시간도 많이 소요됩니다. 이런 때 유용하게 활용할 수 있는 도구가 바로 "Mockaroo"입니다.Mockaroo란 무엇인가?Mockaroo는 웹 기반의 데이터 생성 서비스입니다.회원가입 없이도 무료로 최대 1,000개의 행(Row)..
JavaScript canvas로 이미지 리사이즈
·
Programing/javascript
클라이언트에서 최적화, 서버에서 효율적인 저장이미지 업로드는 대부분의 웹 서비스에서 빈번하게 발생하는 작업입니다. 특히 모바일 기기와 고해상도 카메라의 보급으로 인해, 사용자들이 업로드하는 이미지의 해상도와 파일 용량은 지속적으로 증가하고 있습니다. 이러한 고용량 이미지들은 서버 부하를 가중시키고, 전송 속도를 저하시켜 사용자 경험을 악화시키는 원인이 될 수 있습니다.이를 해결하기 위한 방법 중 하나는 클라이언트 측에서 이미지를 사전 리사이즈하는 것입니다. 사용자가 업로드하기 전에 브라우저에서 이미지의 크기와 용량을 줄이면, 다음과 같은 장점이 있습니다:서버 저장 공간 절약네트워크 전송 속도 향상업로드 대기 시간 단축사용자 불만 감소JavaScript에서 이미지 리사이즈 처리JavaScript에서는 Fi..
MySQL 인덱스: B-Tree, Fulltext, Spatial의 차이와 사용법 (MySQL Index Guide: B-Tree, Fulltext, Spatial)
·
Programing/MySQL
MySQL에서 인덱스는 성능 최적화의 핵심 도구입니다. 단순히 쿼리를 빠르게 만드는 것뿐만 아니라, 데이터 구조와 접근 방식에 따라 시스템 전체 성능에 영향을 미치기도 합니다. 본 글에서는 MySQL이 제공하는 세 가지 주요 인덱스 유형인 "B-Tree", "Fulltext", "Spatial" 인덱스를 비교하고, 각각의 사용 목적, 구조적 특징, 실무 활용 팁을 정리합니다.B-Tree 인덱스 (MySQL에서 B-Tree 인덱스가 기본인 이유)MySQL에서 가장 널리 사용되는 인덱스 유형은 "B-Tree 인덱스"입니다. MyISAM, InnoDB 등 주요 스토리지 엔진에서 기본 인덱스 구조로 채택하고 있으며, 일반적인 PRIMARY KEY, UNIQUE, INDEX 제약 조건은 모두 B-Tree 구조로 ..
요즘 프론트엔드 vs 과거 프론트엔드: 개발 방식과 역할의 변화
·
잡생각/컬럼
웹 개발 현장에서 프론트엔드는 오랫동안 ‘디자인을 코드로 구현하는 영역’ 정도로 인식되곤 했다. 그러나 지난 10여 년 사이 프론트엔드는 기술적, 조직적 측면에서 큰 전환점을 맞이했다. 정적인 마크업과 간단한 스크립트 위주의 개발 방식에서, 복잡한 애플리케이션 구조와 사용자 경험 중심의 설계로 무게중심이 이동했다. 이 글에서는 과거 프론트엔드 개발과 현대 프론트엔드의 차이를 비교하며 그 변화가 가지는 의미를 짚어본다.과거 프론트엔드: 정적 마크업과 제한된 역할2000년대 중후반까지의 프론트엔드 개발은 정적인 구조를 기반으로 한 단순한 마크업 작성과 스타일링 작업이 중심이었다. 대부분의 비즈니스 로직은 서버에서 처리되었고, 클라이언트에서는 HTML, CSS, 그리고 jQuery 기반의 이벤트 처리 정도만 ..