분류 전체보기
-
WebVeiw iOS 앱에서 HTML 문서를 보여주는 방법 사파리 앱을 호출하여 띄워주기. WKWebView (iOS8 버전 이상부터 지원됨.) SFSafariViewController 1번은 이미 구현되어있는 사파리 브라우저를 통해 페이지를 보여주는것이기 때문에 간단하다. 하지만 앱에서 포커싱이 벗어나게된다. 나머지 2,3번의 방식은 앱 내부에서 웹 페이지를 브라우징해주는 방식이다. 이렇게 앱 내부에 구현된 브라우저를 인앱 브라우저(In-App Browser)라고 한다. 원래는 UIWebView 라는 것도 있었으나, 이제 더이상 사용할 수 없다. (2020년 5월부터) 웹뷰의 사용 방식 다른 View들과 다르지 않다. ViewController에 추가하고, 브라우징할 URL 혹은 파일 경로를 인자값으로..
(iOS) - WebView : Safari 호출 , WKWebView , SFSafariViewController (In app Browser)WebVeiw iOS 앱에서 HTML 문서를 보여주는 방법 사파리 앱을 호출하여 띄워주기. WKWebView (iOS8 버전 이상부터 지원됨.) SFSafariViewController 1번은 이미 구현되어있는 사파리 브라우저를 통해 페이지를 보여주는것이기 때문에 간단하다. 하지만 앱에서 포커싱이 벗어나게된다. 나머지 2,3번의 방식은 앱 내부에서 웹 페이지를 브라우징해주는 방식이다. 이렇게 앱 내부에 구현된 브라우저를 인앱 브라우저(In-App Browser)라고 한다. 원래는 UIWebView 라는 것도 있었으나, 이제 더이상 사용할 수 없다. (2020년 5월부터) 웹뷰의 사용 방식 다른 View들과 다르지 않다. ViewController에 추가하고, 브라우징할 URL 혹은 파일 경로를 인자값으로..
2021.08.20 -
알고리즘 문제들을 풀다보면 로직과 도출되는 결과값은 같지만, 시간복잡도 때문에 애먹는 경우가 많았다. 확실히 입력값들이 많으면 많을수록 시간복잡도를 고려해야할것같다. https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt 이곳에 가면 온갖 연산들에 대한 시간복잡도가 있다. 자주 쓰는것들만 정리해보면 Python의 List 연산에 대한 시간복잡도 Operation ex BigO Notes Index arr[i] O(1) 그냥 값에 접근 Length len(arr) O(1) Append arr.append(4) O(1) Pop arr.pop() O(1) Slice arr[a:b] O(b-a) 자를 길이에 따라 달라진다 Extend arr.e..
(Python) 파이썬 - list, Dict의 메소드 시간복잡도알고리즘 문제들을 풀다보면 로직과 도출되는 결과값은 같지만, 시간복잡도 때문에 애먹는 경우가 많았다. 확실히 입력값들이 많으면 많을수록 시간복잡도를 고려해야할것같다. https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt 이곳에 가면 온갖 연산들에 대한 시간복잡도가 있다. 자주 쓰는것들만 정리해보면 Python의 List 연산에 대한 시간복잡도 Operation ex BigO Notes Index arr[i] O(1) 그냥 값에 접근 Length len(arr) O(1) Append arr.append(4) O(1) Pop arr.pop() O(1) Slice arr[a:b] O(b-a) 자를 길이에 따라 달라진다 Extend arr.e..
2021.08.19 -
클로저(Closure) 란? 간단하게 말하면 클로저는 일정 기능을 하는 코드를 { } 로 모아놓은것을 말한다. 그리고 일반적인 func 로 선언되는 함수의 상위개념이 클로저이다. 왜 클로저라고 하지? 클로저는 변수, 상수가 선언된 스코프에서 참조를 캡쳐(저장) 할 수 있는데 이걸 클로징이라고 하며 그래서 클로저라고 이름붙여졌다. 클로저를 왜 쓰나? 스위프트는 함수형 프로그래밍 패러다임이라고 하는데, 이러한 스타일에 클로저가 중요한 역할을 한다. 클로저를 제네릭, 프로토콜, 모나드와 함께 사용하면서 스위프트는 더 강력한 언어가 될 수있다. 클로저의 형태(종류) 이름이 있고, 값을 캡쳐하지 않고, 전역함수의 형태 이름이 있고, 다른 함수의 값을 캡쳐하는 중첩된(nested) 함수 형태 이름 없고, 주변 co..
(Swift) - 클로저 (Closure)클로저(Closure) 란? 간단하게 말하면 클로저는 일정 기능을 하는 코드를 { } 로 모아놓은것을 말한다. 그리고 일반적인 func 로 선언되는 함수의 상위개념이 클로저이다. 왜 클로저라고 하지? 클로저는 변수, 상수가 선언된 스코프에서 참조를 캡쳐(저장) 할 수 있는데 이걸 클로징이라고 하며 그래서 클로저라고 이름붙여졌다. 클로저를 왜 쓰나? 스위프트는 함수형 프로그래밍 패러다임이라고 하는데, 이러한 스타일에 클로저가 중요한 역할을 한다. 클로저를 제네릭, 프로토콜, 모나드와 함께 사용하면서 스위프트는 더 강력한 언어가 될 수있다. 클로저의 형태(종류) 이름이 있고, 값을 캡쳐하지 않고, 전역함수의 형태 이름이 있고, 다른 함수의 값을 캡쳐하는 중첩된(nested) 함수 형태 이름 없고, 주변 co..
2021.08.14 -
네트워크 통신과 API 네트워크 통신의 종류 소켓방식의 연결성 통신 : TCP/UDP 프로토콜을 이용한 비연결성 통신 : HTTP, HTTPS, SMTP 소켓 방식의 연결 지향 통신 소켓을 이용한 네트워크 통신은 보통 저수준(Low-level) 통신을 통하여 구현된다. 소켓은 전구가 결합하는 개념을 따온것이다. 앱과 서버가 연결되면 한쪽에서 연결을 끊기 전까지는 계속 연결이 유지되기 때문에 연결 지향 통신이라고 한다. 따라서 연결을 계속 유지하기 위해서 네트워크 대역도 많이 소모되고, 서버 부하도 크기 때문에 모바일 서비스에서는 메신저, 화상통화, RPG 게임 등에서 주로 사용된다. TCP는 속도는 느리지만, 데이터 유실을 방지하고 완전한 전송을 보장한다. UDP는 속도는 빠르지만, 데이터의 완전한 전송..
(iOS) 네트워크 통신 , RESTful API , SOAP , JSON , XML네트워크 통신과 API 네트워크 통신의 종류 소켓방식의 연결성 통신 : TCP/UDP 프로토콜을 이용한 비연결성 통신 : HTTP, HTTPS, SMTP 소켓 방식의 연결 지향 통신 소켓을 이용한 네트워크 통신은 보통 저수준(Low-level) 통신을 통하여 구현된다. 소켓은 전구가 결합하는 개념을 따온것이다. 앱과 서버가 연결되면 한쪽에서 연결을 끊기 전까지는 계속 연결이 유지되기 때문에 연결 지향 통신이라고 한다. 따라서 연결을 계속 유지하기 위해서 네트워크 대역도 많이 소모되고, 서버 부하도 크기 때문에 모바일 서비스에서는 메신저, 화상통화, RPG 게임 등에서 주로 사용된다. TCP는 속도는 느리지만, 데이터 유실을 방지하고 완전한 전송을 보장한다. UDP는 속도는 빠르지만, 데이터의 완전한 전송..
2021.08.05 -
SandBox iOS는 개인정보에 대한 보안을 지키며, 구동환경을 안정적으로 하기 위해 앱의 기능을 제한하고있다. iOS를 안전한 OS로 만드는 두가지 제약이 있는데 샌드박스 제약과, 백그라운드 프로세스 제약이 있다. 샌드박스는 프로그램 실행시에 격리된 공간을 제공하고, 다른 곳으로 벗어나 허용되지 않은 작업을 못하도록 방지하는 기술이다. chroot Unix의 프로그램 실행 환경중에 chroot가 있는데, 이것은 현재 실행중인 프로그램의 디렉토리를 root로 인식하도록 하는것이다. 즉, 현재 실행중인 프로그램에서 지정된 디렉토리 외부 파일에 대해서는 접근할 수 없다. 그래서 이 영역에 대해서는 chroot jail이라고 하며, 이것을 우회하여 제조사가 접근 불가하도록 감춰둔 설정파일에 접근하는 것을 흔..
(iOS) - 샌드박스 (SandBox), chroot 란?SandBox iOS는 개인정보에 대한 보안을 지키며, 구동환경을 안정적으로 하기 위해 앱의 기능을 제한하고있다. iOS를 안전한 OS로 만드는 두가지 제약이 있는데 샌드박스 제약과, 백그라운드 프로세스 제약이 있다. 샌드박스는 프로그램 실행시에 격리된 공간을 제공하고, 다른 곳으로 벗어나 허용되지 않은 작업을 못하도록 방지하는 기술이다. chroot Unix의 프로그램 실행 환경중에 chroot가 있는데, 이것은 현재 실행중인 프로그램의 디렉토리를 root로 인식하도록 하는것이다. 즉, 현재 실행중인 프로그램에서 지정된 디렉토리 외부 파일에 대해서는 접근할 수 없다. 그래서 이 영역에 대해서는 chroot jail이라고 하며, 이것을 우회하여 제조사가 접근 불가하도록 감춰둔 설정파일에 접근하는 것을 흔..
2021.08.04 -
TableView TableView의 데이터 표현 방식 TableView는 표면적으로는 단순히 목록 형태의 데이터를 화면에 표시해주는 역할을 한다. 하지만 내부적으로 보면 계층 구조를 이루는 콘텐츠의 상위 카테고리들을 정렬하여 표현해주며, 그 속에서 사용자가 원하는 항목에 쉽게 접근할 수 있도록 도와준다. 네비게이션 컨트롤러와 테이블 뷰 컨트롤러는 계층적 성격의 콘텐츠를 표현하기에 알맞고, 서로 상호 보완적인 역할을 하게 된다. 네비게이션 컨트롤러는 수직적인 정보들을 직렬로 표현하며, 테이블뷰 컨트롤러는 수평적인 정보들을 병렬로 배열하게된다. TableView의 계층구조 TableView Controller ViewController를 바탕으로 만들어진 특수한 컨트롤러이다. 화면 전체를 목록형식으로 나타..
(iOS) 테이블 뷰 (TableView)TableView TableView의 데이터 표현 방식 TableView는 표면적으로는 단순히 목록 형태의 데이터를 화면에 표시해주는 역할을 한다. 하지만 내부적으로 보면 계층 구조를 이루는 콘텐츠의 상위 카테고리들을 정렬하여 표현해주며, 그 속에서 사용자가 원하는 항목에 쉽게 접근할 수 있도록 도와준다. 네비게이션 컨트롤러와 테이블 뷰 컨트롤러는 계층적 성격의 콘텐츠를 표현하기에 알맞고, 서로 상호 보완적인 역할을 하게 된다. 네비게이션 컨트롤러는 수직적인 정보들을 직렬로 표현하며, 테이블뷰 컨트롤러는 수평적인 정보들을 병렬로 배열하게된다. TableView의 계층구조 TableView Controller ViewController를 바탕으로 만들어진 특수한 컨트롤러이다. 화면 전체를 목록형식으로 나타..
2021.08.02