PC에 연결된 모바일 기기 화면을 명령어로 캡처하기 (안드로이드, iOS)
·
Mobile
모바일 앱을 개발하거나 USB로 연결된 모바일 기기의 화면 캡처가 필요할 때가 종종 있습니다.이번 글에서는 USB로 연결된 안드로이드나 iOS(아이폰) 기기의 화면을 캡처하는 방법에 대해 정리했습니다.1. 각 OS별 캡처 명령안드로이드adb exec-out screencap -p > screenshot.pngADB를 이용해 PNG 캡처 후 로컬에 저장adb devices로 연결 확인 가능windows에서는 cmd에서 가능 (powershell 불가)iOS (실물 기기)xcrun xcdevice screenshot screenshot.pngXcode CLI 도구를 이용해 iOS 기기 화면을 PNG로 저장xcrun xcdevice list로 연결 상태 확인 가능USB로 연결되어 있고, 개발자 모드가 켜져 있..
뚝딱툴 - 바이브코딩으로 만든 무료 웹 도구 플랫폼
·
DDTool
들어가며: "간단한 작업인데, 왜 로그인이 필요하지?"개발을 하다 보면, 혹은 기획서를 쓰다 보면 급하게 필요한 도구들이 있습니다. 글자 수를 세거나, 줄바꿈을 제거하거나, 테스트용 QR 코드를 만들어야 할 때 말이죠.하지만 막상 검색해서 들어가 보면 과도한 광고에 눈이 피로해지거나, 심지어 간단한 기능조차 회원가입을 요구하는 경우가 많았습니다. '이런 불편함을 직접 해결해 볼 수는 없을까?'라는 작은 질문이 이 프로젝트의 시작이었습니다.때마침 개발자 커뮤니티에서 AI와 대화하며 애플리케이션을 구축하는 Vibe Coding(바이브 코딩)이 뜨거운 화두로 떠오르고 있었습니다. 저는 이 새로운 개발 패러다임을 검증해 볼 겸, 아이디어를 현실로 만들어보기로 했습니다.그렇게 탄생한 뚝딱툴(DDTool)은 누구나..
[supabase] 이미 가입된 이메일 검증하기
·
Backend
supabase를 사용해 회원가입 프로세스를 구현하다보면 이미 가입된 이메일로 가입 시도 시 '이미 가입되어 있으니 로그인을 시도하세요.'와 같은 안내를 하도록 개발하고 싶은 경험 있으실텐데요.보통 이메일과 비밀번호로 회원가입을 시도하는 경우 아래와 같이 코드를 작성하게 됩니다.import { supabase } from './supabaseClient'; // Supabase 클라이언트 import// 회원가입 처리 함수const handleSignUp = async (email, password) => { try { // Supabase의 signUp 함수 호출 const { data, error } = await supabase.auth.signUp({ email: email,..
스마트폰에서 같은 네트워크 윈도우 서버 접근하기
·
Mobile
윈도우PC WSL에 웹서버를 구동시킨 후 같은 네트워크에 wifi로 연결한 스마트폰으로 접근하려 하니 잘 안된다.찾아보니 이것저것 설정을 해줘야 하는 부분이 있어 기록을 남겨본다.1. Windows IP 주소 확인Windows 명령 프롬프트에서:ipconfig또는 PowerShell에서:Get-NetIPAddress -AddressFamily IPv4WiFi 어댑터 IP 주소 확인 (보통 192.168.x.x 형태).2. WSL에서 웹서버 바인딩 설정웹서버가 localhost(127.0.0.1)가 아닌 모든 인터페이스에서 접근 가능하도록 설정 필요Express.js 예시:app.listen(3000, '0.0.0.0', () => { console.log('Server running on port ..
[Python] 랜덤 비밀번호 생성하기
·
Automation
Python ramdom 라이브러리를 사용한 랜덤 비밀번호 생성 예제를 소개한다. 샘플 코드 import random def generate_random_password(length): characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*" password = ''.join(random.choice(characters) for _ in range(length)) return password # Example usage password_length = 10 random_password = generate_random_password(password_length) print("Random Password:", ..
[Python] 텍스트 파일에서 단어 수 세기
·
Backend
파이썬을 공부하며 이것저것 개발해보고 있다. 다른 언어로 같은 기능을 개발했을 때는 훨씬 복잡했던 것 같은데.. 파이썬으로 작성하니 코드가 매우 간단하다. filename = "data/sample.txt" wordcount = {} with open(filename, 'r') as f: for line in f: words = line.split() for word in words: word = word.lower() # 소문자로 단어를 세고 싶은 경우 if word not in wordcount: wordcount[word] = 1 else: wordcount[word] += 1 for key, value in wordcount.items(): print(key, value) 결과는 아래와 같다. i..
OpenAI(ChatGPT) API로 블로그 발행하기 - #5. Python으로 Blogger 발행하기 (Google OAuth API)
·
Automation
0. Todo Google Cloud 프로젝트 생성 Blogger API 사용 설정 OAuth 클라이언트 ID 생성 Python으로 Blogger 서비스 연동하기 Python으로 Blog 발행하기 1. Google Cloud 프로젝트 생성 ① Google Cloud 계정 생성 (https://cloud.google.com/) ② Google Cloud Console로 이동 (https://console.cloud.google.com/) ③ 프로젝트 생성 2. Blogger API 사용 설정 ① API 라이브러리 페이지로 이동 (API 및 서비스 → 라이브러리) ② Blogger 검색 ③ Blogger API 사용 설정 이미 사용중이라 아래와 같이 '관리'라 나오지만 원래는 '사용'이라는 버튼이 있다. 3..
개발자라면 꼭 알아야 할 Base64 인코딩/디코딩 원리와 실습
·
Backend
개발을 하다 보면 알 수 없는 영문 대소문자와 숫자가 섞여 있고, 끝이 = 또는 ==로 끝나는 긴 문자열을 마주칠 때가 있습니다. 바로 Base64 인코딩된 데이터입니다. 오늘은 이 Base64가 도대체 무엇인지, 왜 굳이 데이터 크기가 늘어나는 것을 감수하고 사용하는지, 그리고 파이썬(Python)으로 이를 어떻게 다루는지에 대해 정리해 보려고 합니다.1. Base64란 무엇인가?Base64는 이진 데이터(Binary Data)를 텍스트(ASCII 문자)로 변경하는 인코딩 방식 중 하나입니다. 컴퓨터 분야에서 '64'라는 숫자는 26을 의미합니다. 즉, 64진법을 사용한다는 뜻인데, 64개의 문자로 모든 데이터를 표현한다는 것이 핵심입니다.사용되는 문자: A-Z (26개), a-z (26개), 0-9 ..
[Java] Jackson JSON 처리 마스터하기
·
Backend
Java에서 JSON 처리를 위한 라이브러리로 가장 널리 사용되는 것이 바로 Jackson이다. Spring Boot의 기본 JSON 처리 라이브러리로 채택되어 있을 만큼 안정적이고 성능이 뛰어나다. 이번 포스트에서는 Jackson을 활용한 JSON 처리의 핵심 기능들을 샘플 코드와 함께 살펴보자.Jackson이란?Jackson은 Java 객체와 JSON 데이터 간의 직렬화(Serialization)와 역직렬화(Deserialization)를 담당하는 고성능 JSON 처리 라이브러리다.주요 특징높은 성능: 스트리밍 기반 처리로 빠른 속도유연성: 다양한 어노테이션으로 세밀한 제어 가능Spring 통합: Spring Boot에서 기본 JSON 처리기로 사용기본 설정 com.fasterxml.jackso..
[Python] 웹사이트에서 링크 목록 수집하기
·
Automation
이번 글에서는 파이썬을 사용해 웹사이트에서 링크 목록을 수집해오는 예제에 대해 소개하려 한다. 간단히 얘기하면 BeautifulSoup 모듈을 사용해 웹사이트를 받아와 특정 태그에 해당하는 항목들을 수집해오는 예제이다. 샘플 코드 예제에서 사용한 웹사이트는 https://example.com/ 으로 실제로 사이트에 들어가면 아래와 같은 화면이 나온다. 샘플 코드는 이 웹사이트의 제목과 링크(More information...)가 바라보는 사이트의 주소를 가져오는 기능을 수행한다. import requests from bs4 import BeautifulSoup url = 'https://example.com' response = requests.get(url) soup = BeautifulSoup(res..