본문 바로가기

728x90

분류 전체보기

(104)
NEHotspotConfigurationManager를 이용한 Wi-Fi 연결하기 NEHotspotConfigurationManager Wi-Fi 네트웤의 핫스팟 구성을 적용하고 제거하는 관리자 NEHotspotConfiguration을 생성하여 Wi-Fi 연결을 시도할 수 있다. 주의! 앱이 NEHotspotConfigurationManager를 통해 새 핫스판 구성을 만들고 이를 Wi-Fi 네트워크에 적용하거나 이전에 구성된 네트워크를 업데이트하려고 시도하면 기기에서 사용자에게 명시적인 동의를 받아야만 한다. 사용자의 동의가 이뤄지지 않을 경우 동작이 불가하다. 1. 코드 작성전에 Signing & Capabilities에서 '+Capability' 버튼을 눌러 Hotspot Configuration을 추가한다. 2. import! import NetworkExtension imp..
배열을 문자열로 만들기 join() arr = ["a", "b", "c", "d"] 배열을 문자열 "a,b,c,d"로 만들고 싶다면 join을 사용하자! arr = ["a", "b", "c", "d"] print(','.join(arr)) #결과 #a,b,c,d 구분자를 앞에 써주면 된다. 이 때 배열의 요소가 문자가 아닌 경우! 에러가 발생하게 되는데 TypeError: sequence item 0: expected str instance, int found 아래와 같은 방법으로 해결이 가능하다. arr = [1 ,2, 3, 4] print(','.join(arr)) #TypeError: sequence item 0: expected str instance, int found 발생! print(','.join(str(_) for _ in..
Framework와 Library의 차이 Framework 프레임워크는 뼈대를 제공하는것이다. 앱 개발시 코드, 알고리즘, 디비연동, 화면 이동의 룰 등 과 같이 기능들을 위해 뼈대를 제공하고 프로그래머는 제공된 뼈대 위에서 코드를 작성한다. Framework는 통합성, 일관성 부족등의 문제를 해결할 방법중 하나라고 할 수 있다. 프레임워크의 특징 - 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어있다. - 컴포넌트들을 재사용이 가능하다. - 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다. - 제어의 역전(Inversion Of Control)이 적용 되어 있다. Library 라이브러리는 활용가능한 코드의 집약체라고 할 수 있다. 흔히들 cocoapods으로 라이브러리를 임포트 하고 라이브러리에 작성된 코드를 사용하..
[iOS] SnapKit 사용법 🤔왜 이걸 쓰지? 개발 시 스토리보드를 사용하여 화면의 UI를 구성할 수도 있지만 Autolayout을 코드로 작성하는 방법도 있다. NSLayoutConstraint를 직접 지정해주며 하나하나 제약을 적용해 주는 방법이 그것인데, 화면을 구성하는 UI요소들이 많아질 수록 제약에 필요한 코드양이 상당해지며 가독성도 그리 좋지 못하다고 느꼈다. SnapKit은 간결한 코드로 NSLayoutConstraint를 쉽게 제어할 수 있도록 해준다. 간단히 SnapKit사용법과 샘플프로젝트에 적용해본다. 그럼 시작해보자. 프로젝트에 SnapKit을 import해보자. 난 SPM(SwiftPackageManager )를 사용해서 추가해줬다. SPM 편해. ViewController.swift를 열자. SnapKit을..
프로세스 와 스레드 프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다. 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적(動的)인 상태라고 하며 이 상태의 프로그램을 프로세스라고 한다. 프로세스란? 사전적 의미로 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램. - 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 - 운영체제로부터 시스템 자원을 할당 받는 작업의 단위! - 동적인 개념으로는 실행된 프로그램을 말함. 할당받는 시스템 자원의 예 - 운영되기 위해 필요한 주소공간 - Code, Data, Stak, Heap의 구조로 되어 있는 독립된 메모리 영역 중요! - 프로세스는 기본적으로 하나의 스레드(메인 스레드)를 갖는다. - 각..
문자열 문자 사이사이에 문자 삽입! 문자열 사이에 문자를 삽입하고 싶을 경우! 예를들어 가나다라마바사아... 라는 문자열을 가,나,다,라... 와 같이 보고 싶다면 ' '.join(문자열변수 또는 문자열) 사용하면 된다. ' '안에는 삽입하고싶은 문자를 입력하면 되는데, 공백을 넣고 싶다면 space를 입력해서 ' '로 만들자. print(','.join('가나다라마바사아'))
'모두의 네트워크' 후기 '모두의 네트워크' 라는 책을 읽고 Network카테고리에 책의 주요 내용들을 정리했다. (2021.08.08 - [Network] - [Network] Network 란?) 겉 표지엔 10일 만에 배우는 네트워크 기초! 라고 떡하니 써있지만 시간이 날 때마다 조금씩 읽고 블로그에 정리하다보니 한 달? 정도 더 걸려서 다 읽었다. 처음 네트워크 개념을 쉽게 이해하기 위해 어떤 책을 읽어야 할지 검색하다가 알게 된 이 책. 정말 쉽게 설명해준다. IT서적의 그 딱딱하고 지루한 느낌을 이 책에선 전혀 찾아볼 수 없었다. 대부분의 설명에는 그림이 항상 들어가 있어서 추상적인 느낌의 설명도 입체적으로 이해가 가능했고 , 무엇보다... 책에는 등장인물들이 서로 대화를 주고 받으며 이해를 돕는다. ㅋ_ㅋ 마치 어릴..
재귀를 사용한 팩토리얼, 피보나치 구현 팩토리얼이란 n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다 def factorial(n): if n == 1: return n return n * factorial(n - 1) print(factorial(100)) 재귀에서 중헌것은 반복되는 루프를 빠져나올 수 있는 조건식! 피보나치 https://ko.wikipedia.org/wiki/피보나치_수 n값은 n의 앞선 두 항에 피보나치 수열이 적용된 값의 합이다. 재귀를 써서 해결해봤다. def fibonacci(n): if n
k번째로 작은 수 https://programmers.co.kr/learn/courses/33/lessons/1864?language=python3 COS Pro 2급 Python 모의고사 - k번째로 작은 수 [[5,12,4,31],[24,13,11,2],[43,44,19,26],[33,65,20,21]] 4 11 programmers.co.kr 문제 자연수가 담겨있는 n x 4 크기의 2차원 배열에서 k번째로 작은 수를 찾으려 합니다. 이때, n은 배열의 세로길이, 4는 배열의 가로길이입니다. 예를 들어 다음은 자연수가 담겨있는 4 x 4 크기의 2차원 배열입니다. 위 2차원 배열에서 가장 작은 수는 2입니다. 두 번째로 작은 수는 4, 세 번째로 작은 수는 5이며, 네 번째로 작은 수는 11입니다. 2차원 배열 ar..
백준 2530: 인공지능 시계 https://www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 처음 문제를 봤을때 입력받는 현재시간을 초단위로 변환하고 요리시간을 더하여 지지고 볶고 난리를 피우는게 정석이라고 생각했다. 그러자 갈수록 늘어나는 코드... 길어지는게 나쁜건 아니지만, 알고리즘 슨배님의 조언을 얻고서 심봉사 눈이 뜨이는 듯한 충격을 받았다. 이리도 쉬운 방법이 또 있었다니... current = input().split(' ') needTime = in..

728x90