728x90
반응형

2025/05 24

n8n 설치 가이드 – 자가 호스팅(Docker) 편

💻 n8n 설치 가이드 – 자가 호스팅(Docker) 편n8n은 오픈소스 자동화 플랫폼으로, 직접 서버에 설치해서 무료로 사용할 수 있습니다.이 포스팅에서는 가장 쉽고 많이 쓰이는 Docker 방식 설치 방법을 소개합니다.🧩 설치 전 준비사항Ubuntu 20.04 이상 서버 (AWS, DigitalOcean, Oracle Cloud 등 가능)포트 5678번 개방도메인은 선택사항 (추후 HTTPS 적용 시 유리)⚙️ 1. Docker & Docker Compose 설치sudo apt updatesudo apt install -y docker.io docker-composesudo usermod -aG docker $USER※ 위 명령어는 Ubuntu 기준입니다. 설치 후 재부팅 또는 로그아웃/로그인 필..

자동화 툴/n8n 2025.05.31

n8n이란? – 오픈소스 자동화 툴 소개

🔧 n8n이란? – 오픈소스 자동화 툴 소개n8n은 "node + node = workflow"라는 개념으로, 다양한 앱과 서비스를 연결하여 반복 작업을 자동화할 수 있는 오픈소스 워크플로우 자동화 툴입니다. 👨‍💻 개발자와 비개발자 모두 사용 가능 🧩 200개 이상의 앱/서비스 노드 연동 가능 🔐 자가 호스팅으로 데이터 보안 강화 💸 오픈소스로 무료 사용 가능📌 핵심 개념 용어설명 노드 (Node)하나의 동작 단위 (예: Slack 메시지 보내기) 워크플로우여러 노드를 연결해 만든 자동화 흐름 Trigger Node워크플로우를 시작하는 노드 (예: Webhook) Credential외부 앱과 연결할 때 필요한 인증 정보 Expression변..

자동화 툴/n8n 2025.05.30

iOS 푸시 알림(APNs) 구성 및 실무 정리

🍎 iOS 푸시 알림(APNs) 구성 및 실무 정리iOS에서 푸시 알림 기능을 구현할 때 반드시 알아야 할 것이 Apple Push Notification service(APNs)입니다. APNs는 Apple이 제공하는 공식 푸시 알림 서비스로, 서버에서 iOS 디바이스로 푸시 메시지를 전달하는 역할을 합니다. 앱이 백그라운드에 있거나 꺼져 있어도 알림을 받을 수 있도록 해주는 중요한 메커니즘입니다.1. APNs 작동 방식iOS 앱이 설치되고 실행되면, APNs에 등록 요청을 보내고 디바이스 토큰(Device Token)을 발급받습니다. 이 토큰은 iOS 기기를 식별하는 유일한 키이며, 서버는 이 토큰을 저장한 뒤 푸시 전송에 활용합니다.푸시 전송 과정은 아래와 같습니다:클라이언트 앱이 디바이스 토큰을..

개발 일지 2025.05.28

📱 iOS 푸시 알림 오류 해결기 (APNs 인증서 문제)

📱 iOS 푸시 알림 오류 해결기 (APNs 인증서 문제)🧨 문제 상황일부 사용자에게 iOS 푸시 알림이 도착하지 않음. 서버 로그에서는 SSL 인증 관련 오류 발생.SSL operation failed with code 1. OpenSSL Error messages:error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired→ APNs 통신에 사용하는 .pem 인증서가 만료되었거나, 운영 환경에 개발용 인증서가 적용되어 있는 경우 발생하는 대표적인 오류.🔍 원인 분석푸시 전송 코드에서 stream_socket_client() 함수로 APNs 서버에 연결 시도ssl 인증서를 stream_context_set_option() ..

개발 일지 2025.05.27

데이터 모델링이란?

1. 데이터 모델링이란? 데이터 모델링은 현실 세계의 데이터를 구조적으로 표현하고 설계하는 과정입니다. 소프트웨어 시스템이 어떤 데이터를 저장하고, 어떻게 연결되고, 어떻게 활용될지를 미리 설계함으로써 정확하고 일관성 있는 데이터 구조를 만드는 것이 목적입니다.✔ 쉽게 말해? 개발을 시작하기 전, “어떤 테이블이 필요하고 어떤 데이터가 저장될까?”를 도식화하는 작업이 바로 데이터 모델링입니다. 예: 회원 → 주문 → 상품 관계를 시각적으로 표현하고, 이를 토대로 DB를 설계합니다.2. 왜 데이터 모델링이 중요한가? 💡 데이터 품질 향상: 중복, 누락, 이상 현상을 방지합니다. 💡 시스템 이해도 향상: 누구나 구조를 한눈에 파악할 수 있습니다. 💡 유지보수 효율성: 체계적인 설계는 추후 ..

✅ 10. MySQL: Data too long for column 오류

10. MySQL: Data too long for column 오류 원인: 입력 데이터 길이가 컬럼의 최대 길이 제한을 초과함 해결법: VARCHAR 길이 조정 또는 데이터 길이 검증 ALTER TABLE users MODIFY nickname VARCHAR(100); 문제 예방: 입력값 유효성 검사, 최대 길이 고려한 설계 디버깅 팁: 문제 발생 컬럼 로그 확인, CHAR_LENGTH() 등으로 입력값 길이 확인

✅ 9. MySQL: Illegal mix of collations 오류

9. MySQL: Illegal mix of collations 오류 원인: 서로 다른 collation 설정의 문자열을 비교하거나 정렬할 때 발생 해결법: 비교 시 collation 명시적 통일 SELECT * FROM users WHERE name = CONVERT('홍길동' USING utf8mb4) COLLATE utf8mb4_general_ci; 문제 예방: 테이블/컬럼 생성 시 일관된 collation 지정 디버깅 팁: SHOW FULL COLUMNS FROM table;로 각 컬럼의 collation 확인

✅ 7. MySQL: Too many connections 오류

7. MySQL: Too many connections 오류 원인: 동시에 연결된 클라이언트 수가 max_connections 값을 초과한 경우 해결법: SHOW STATUS LIKE 'Threads_connected';SET GLOBAL max_connections = 200; → 최대 연결 수 조정 문제 예방: 커넥션 풀 사용, 연결 종료 누락 방지 디버깅 팁: 백그라운드에서 연결 유지 중인 세션 추적, SHOW PROCESSLIST 활용

✅ 6. MySQL: Lock wait timeout exceeded 오류

6. MySQL: Lock wait timeout exceeded 오류 원인: 트랜잭션 충돌 또는 오랫동안 락이 해제되지 않아 발생 해결법: SHOW ENGINE INNODB STATUS;SELECT * FROM information_schema.innodb_locks; → 락 정보를 조회하고 필요시 트랜잭션 강제 종료 문제 예방: 트랜잭션 최소 단위로 사용, 적절한 인덱스 구성 디버깅 팁: 락 대기 중인 쿼리와 테이블 추적, 쿼리 수행 시간 분석

728x90
반응형