[iOS] UITextField 비밀번호 자동 채우기 기능 구현하기
·
IOS
🎯 OverviewiOS 11부터 도입된 Password AutoFill 기능은 로그인/회원가입 UX를 개선 가능함. 사용자는 키체인, 1Password 등에서 저장된 계정 정보를 한 번에 입력할 수 있음. 개발자는 몇 가지 설정만으로 보안성과 편의성을 모두 챙길 수 있음.Prerequisites iOS 11 이상 타겟팅 Apple Developer 계정 HTTPS로 서비스되는 도메인 앱에 Associated Domains 권한 추가 도메인 루트에 AASA 파일 업로드📦 Step 1: 키체인 및 AutoFill 활성화아이폰 설정 → 암호 → 키체인 사용 체크함앱 삭제 후 재설치 권장함 (AASA 파일 갱신 반영 위해)📦 Step 2: UITextField에 textContentType 태깅이메일/아..
[iOS] WKWebView에서 웹문서 스크롤 높이 구하기
·
IOS
🎯 개요iOS 앱에서 WKWebView를 사용할 때, 웹문서의 실제 컨텐츠 높이를 알아야 할 때가 많음.예를 들어, 웹뷰의 높이를 컨텐츠에 맞게 동적으로 조정하거나, 테이블뷰 셀 내부에서 웹뷰가 잘리는 현상을 방지하려면 웹문서의 전체 스크롤 높이를 정확히 알아야 함.이 글에서는 WKWebView에서 JavaScript를 활용해 스크롤 높이를 구하는 실전 방법을 정리함.📦 Step 1: WKWebView 델리게이트 설정 및 didFinish 구현WKWebView의 navigationDelegate를 설정하고, 웹페이지 로딩이 끝났을 때 호출되는 didFinish 메서드에서 JavaScript를 실행해야 함.func webView(_ webView: WKWebView, didFinish navigatio..
Django 서버에서 iOS Push Notification 보내기
·
IOS
Django에서 iOS 푸시 알림 구현하기📱 Django 백엔드에서 iOS 앱으로 실시간 푸시 알림 보내는 방법 단계별로 알아봄🎯 개요이 글에서는 Django 서버에서 Apple Push Notification Service(APNs)를 통해 iOS 기기로 푸시 알림 보내는 방법을 다룸.사전 준비사항Django 프로젝트 환경Apple Developer 계정APNs 인증 키(.p8 파일) 또는 인증서(.pem 파일)iOS 앱에서 푸시 알림 권한 설정 완료📦 1단계: 필요한 패키지 설치먼저 Django에서 푸시 알림 처리하기 위한 패키지들 설치함.pip install django-push-notificationspip install apns2 # Apple Push Notification Servic..
URL의 구성 요소와 웹 통신 과정
·
CS
1. URL이란? URL은 Uniform Resource Locator의 약자로 인터넷에 존재하는 리소스의 위치를 나타내는 주소이다. 자원을 식별하기 위해 사용하는 URI는 URL를 포함하는 더 넓은 개념이다. 2. 구성 요소 프로토콜(Protocol) 스키마(Scheme)라고도 하며, 사용하는 프로토콜의 이름이다. URL에서 사용되는 프로토콜의 유형을 지정하는 역할로 주로 http, https, ftp 등이 사용된다. 서브 도메인(Subdomain) 도메인의 하위 요소로 웹 사이트의 기능을 구분하거나 특정 서비스를 나타내기 위해 사용된다. 예를 들어, 'blog.naver.com', 'webtoon.naver.com' 처럼 도메인 내에서 다른 서비스에 접근할 수 있다. 2차 수준 도메인(Second-L..
HTTP 버전별 특징 정리
·
CS
HTTP 0.9 (1991년) HTTP의 초기 버전 요청 메시지가 단일 라인으로 구성되고 GET 메서드만 사용 가능 요청 및 응답 헤더가 없고 HTML 문서만 전송 가능 응답 메시지에 상태 코드가 없고 문서 파일 자체만 전송 HTTP 1.0 (1996년) GET, POST, HEAD 메서드 사용 가능 메타데이터를 나타내는 헤더가 메시지에 추가됨. Content-Type 헤더를 사용해서 HTML외에 다른 형식의 데이터도 전송 가능 요청 메시지에 프로토콜 버전과 메서드를 포함 응답에 상태 코드가 추가됨. 요청을 보낼 때 마다 매번 TCP 연결을 새로 설정해야하는 단점 존재 HTTP 1.1 (1997년) Keep-Alive 기능을 통해 일정 시간 또는 횟수 동안 연결을 닫지않고 유지 Persistent Con..
HTTP 메시지와 구성 요소
·
CS
1. HTTP 메시지 1) 개요 HTTP는 서버-클라이언트 구조로, 클라이언트가 요청하고 서버가 응답하는 단방향 통신이다. 이때 각 호스트가 보내는 데이터는 HTTP 메시지 구조를 가진다. HTTP 메시지는 요청 메시지와 응답 메시지로 나뉘고 크게 라인, 헤더, 바디로 구성된다. 2) 요청 메시지 클라이언트가 서버에게 전송하는 데이터 라인(Line) HTTP 메서드 요청할 리소스의 경로 또는 이름 (URI) 프로토콜 버전 헤더(Header) 요청 메시지의 메타데이터를 포함하는 부분 미디어 타입, 요청 호스트 정보 등 요청에 대한 부가적인 정보를 나타낸다. Host, User-Agent, Accept, Content-Type 등이 있다. Host와 User-Agent는 각각 요청 호스트 IP와 클라이언트 ..
HTTP vs HTTPS (feat. 대칭키, 공개키)
·
CS
1. HTTP란? 1) 개요 HTTP(HyperText Transfer Protocol)는 두 네트워크 장치 간 하이퍼텍스트 전송을 위한 프로토콜이다. 주로 웹 브라우저와 서버가 웹 페이지(HTML) 문서를 주고 받을때 사용된다. HTML (HyperText Markup Language) 태그를 사용해 하이퍼텍스트로 이루어진 문서 또는 데이터를 구조화한 형식 응용 계층 프로토콜로서 TCP/IP를 사용하며 80번 포트를 사용한다. 전송 과정에서 평문으로된 데이터가 제3자에게 노출될 수 있어 보안에 취약하다. 2) 특징 A. 서버-클라이언트 구조 클라이언트가 요청하면 서버가 응답하는 단방향 통신이다. 서버가 먼저 클라이언트에게 요청 메시지를 보낼 수 없다. B. 무상태성 (Stateless) 서버는 클라이언..
TCP vs UDP
·
CS
1. 개요 TCP와 UDP는 OSI(또는 TCP/IP) 모델의 전송(Transport) 계층에 속하는 프로토콜로서, 전송할 데이터를 패킷 단위로 나누고 IP를 이용해 데이터를 전송한다. 전송 계층은 네트워크 통신의 신뢰성을 보장하기 위한 역할을 수행하며 통신을 제어하고 관리한다. 패킷(Packet) 효율적인 전송을 위해 데이터를 작은 조각으로 나눈 단위를 의미한다. 데이터를 패킷 단위로 나누어 전송하면 일부가 유실되더라도 재전송할 수 있어서 신뢰성을 보장할 수 있고, 대용량 데이터를 전송할 때 작게 나누어 전송하므로 전송 속도를 높일 수 있다. 네트워크 계층의 PDU인 패킷(IP 패킷)과는 다른 의미이다. 2. TCP (Transmission Control Protocol) 1) 개요 TCP는 네트워크 ..
OSI 7계층에 대하여
·
CS
1. 개요 1) 개념 OSI(Open Systems Interconnection) 7계층은 네트워크 프로토콜과 통신 과정을 7개의 계층(Layer)으로 구성한 ISO 표준 참조 모델이다. 2) 등장배경 네트워크는 여러 장치들이 통신을 위해 연결돼있는 집단을 말하는데, 장치 간 원거리 통신의 필요성이 대두되어 네트워크가 발달하게 됐다. 서로 다른 네트워크가 계속 생겨나면서 각 네트워크를 연결할 필요성이 생겼다. 네트워크를 연결하기 위해서는 시스템이 다른 장치 사이의 호환성 문제를 해결해야 했다. 이런 호환성 이슈를 해결하기 위해 ISO에서 제시한 표준화된 참조 모델이 OSI 모형이다. 3) 필요성 이 표준 모델을 참조해서 네트워크 장치를 만들면 앞서 말한 호환성 이슈를 해결할 뿐 아니라, 통신 과정을 한 ..
데드락(Deadlock)에 대하여
·
CS
1. 개요 데드락은 교착상태라는 뜻으로, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 사용하기 위해 서로 대기하면서 빠지는 무한 대기 상태를 말한다. 2. 발생 조건 아래 4가지 조건을 모두 만족해야 데드락이 발생한다. 1) 상호 배제 서로의 경쟁자를 없앤다는 뜻으로, 자원을 점유하는 프로세스는 한 번에 하나만 존재해야 한다. 즉, 둘 이상의 프로세스가 하나의 자원을 동시에 점유할 수 없어야 한다. 사용 중인 자원을 다른 프로세스가 사용하려면 자원이 해제될 때 까지 기다려야 한다. 2) 점유 대기 하나 이상의 자원을 점유하고, 다른 프로세스가 사용 중인 자원을 점유하기 위해 대기하고 있는 프로세스가 존재해야 한다. 3) 비선점 자원을 선점할 수 없어야 한다. 즉, 다른 프로세스에게 할당된 ..