스마트폰에서 같은 네트워크 윈도우 서버 접근하기
·
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 ..
[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,..
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로 연결되어 있고, 개발자 모드가 켜져 있..
PlaygroundAI 사용법 - AI 기반 무료 이미지 생성
·
Development
퀄리티가 괜찮은 무료 이미지를 생성해주는 Playground AI의 사용법을 정리해본다. 블로그 글을 작성하거나 개발을 하다보면 꽤나 자주 이미지를 사용하게 되는데 무료 이미지를 검색해서 사용할 때도 있지만 원하는 이미지를 생성하고자 할때가 있는데 이 때 사용해보니 만족스러워 계속 사용하고 있다. PlaygroundAI 소개 AI 기반의 이미지 생성 사이트로, 하루에 1000장의 무료 이미지 생성이 가능하다. 인터넷에 떠도는 AI 이미지의 대부분을 차지하는 text-to-image 인공지능 모델 Stable Diffusion을 사용해 이미지 생성이 가능하며, 자체 모델(Playground v1) 기반의 이미지 생성도 제공한다. https://playgroundai.com/ Free AI image gen..
개발자라면 꼭 알아야 할 Base64 인코딩/디코딩 원리와 실습
·
Backend
개발을 하다 보면 알 수 없는 영문 대소문자와 숫자가 섞여 있고, 끝이 = 또는 ==로 끝나는 긴 문자열을 마주칠 때가 있습니다. 바로 Base64 인코딩된 데이터입니다. 오늘은 이 Base64가 도대체 무엇인지, 왜 굳이 데이터 크기가 늘어나는 것을 감수하고 사용하는지, 그리고 파이썬(Python)으로 이를 어떻게 다루는지에 대해 정리해 보려고 합니다.1. Base64란 무엇인가?Base64는 이진 데이터(Binary Data)를 텍스트(ASCII 문자)로 변경하는 인코딩 방식 중 하나입니다. 컴퓨터 분야에서 '64'라는 숫자는 26을 의미합니다. 즉, 64진법을 사용한다는 뜻인데, 64개의 문자로 모든 데이터를 표현한다는 것이 핵심입니다.사용되는 문자: A-Z (26개), a-z (26개), 0-9 ..
[Python] 문장에서 가장 긴 단어 찾기
·
Backend
문장을 입력받아 가장 긴 단어를 찾는 예제를 작성해 보았다. 샘플코드 def find_longest_word(sentence): words = sentence.split() return max(words, key=len) # Example usage text = "It only takes about 20 minutes to find out about your accurate English level" print("Longest word:", find_longest_word(text)) 결과 Longest word: accurate
서버 하나에 docker-compose로 wordpress 여러개 구성하기
·
Infra
wordpress 구성의 필요성을 느껴 docker-compose로 구성해보고 방법을 정리해본다. 보통은 호스팅 업체(카페24, 클라우드웨이즈 등)를 사용해 wordpress를 구성하는데 여러개를 동시에 운영하는 것을 고려하고 있다보니 비용이 많이 발생할 것 같아 서버 하나를 마련해 여러 wordpress를 구성하려 한다. 여러 wordpress가 하나의 db에 database를 개별적으로 사용하는 방식으로 구성하고, https를 위해 wordpress 하나마다 swag를 사용하여 구성하였다. 구조 서버 하나로 구성 (현재는 AWS 사용) 향후 리소스 문제 발생 시 DB를 별도의 서버에 분리 예정 Ubuntu 22.04 LTS 기준 SSL 인증서 적용(https) 및 자동갱신을 위해 swag 사용 swa..
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..
ADB를 사용해 System App 삭제하기
·
Mobile
안드로이드 시스템 이미지에 내장되어 있는 시스템 어플리케이션 (built-in application) 삭제 1. ADB shell접속 및 루트 권한 획득 adb shell su 2. /system 이 어디에 마운트 되었는지 확인 mount | grep system /dev/block/stl12 /system ext4 ro,relatime,barrier=1,data=ordered 0 0 3. read-write로 remount mount -o rw,remount /dev/block/stl12 /system 4. rw모드로 마운트 됐나 확인 mount | grep system /dev/block/stl12 /system ext4 rw,relatime,barrier=1,data=ordered 0 0 5. 어플..