본문 바로가기

전체 글

(139)
Swift 정리 : 제어문 Swift 3에서 사라진 문법 for 초기화;조건식;증감식{ // 실행될구문 } 대신 for-in 반복문 사용 for 상수명 in 컬렉션 또는 범위 { // 실행될 코드 } for i in 1...5 { print("안녕", terminator : " ") //안녕 안녕 안녕 안녕 안녕 } 배열의 항목 접근 let names = ["A", "B", "C", "D"] for name in names { print(name) //A B C D } dictionary의 항목 접근 let numberOfLegs = ["Spider": 8, "Ant": 6, "Dog": 4] //dictionary는 key:value형식의 배열 for (animalName, legCount) in numberOfLegs { pr..
Swift 정리 : Nil-Coalescing Operator(Nil합병연산자) Nil-Coalescing Operator(Nil합병연산자) 옵셔널 변수 ?? 일때 할당되는 값 옵셔녈 변수의 값이 nil일 때 ?? 다음 값이 들어간다. let defaultAge = 10 var age : Int? print(age) //과제:값은? var myAge = age ?? defaultAge //age가 nil이므로 ?? 뒤에 값이 할당됨 print(myAge) // 10
Swift 정리 : 연산자 연산자 swift 3부터 x++이 사라져서 x+=1을 사용해야 한다 == 연산자는 값이 같은지 비교, === 연산자는 주소가 같은지 비교 범위 연산자 • 닫힌 범위 연산자 x...y -> x에서 시작하여y로 끝나는 범위에 포함된 숫자 5...8 -> 5, 6, 7, 8 • 반 닫힌 범위 연산자 x.. x부터 시작해서 y를 제외한 범위의 숫자 3.. 3, 4, 5, 6, 7 • One-Sided Ranges 한쪽 방향 let names = ["A", "B", "C", "D"] for name in names[...2] { //A, B, C print(name) }
Swift 정리 : Optional Optional 타입 값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입으로 감싸서 반환함 옵셔널 타입을 선언하기 위해서는 타입 선언부 뒤에 ? 를 붙임 forced unwrapping - 강제 언래핑 var x : Int? //옵셔널 정수형 변수 x 선언 var y : Int = 0 x = 15 // 초기값이 없으면 nil이 저장됨 print(x) // Optional(15) print(x!) // forced unwrapping해서 10이 나옴 // 옵셔널에 래핑된 값을 !를 붙여서 풀어줌 print(y) x = x! + 2 // 가능 -> forced unwrapping을 사용하면 가능 print(x) // Optional(17) y = x! // 가능 -> forced unwrappin..
Swift 정리 : 튜플 튜플 let myTuple = (10, 12.1, "Hi") //( )로 묶으면 튜플 -> 여러 값을 하나의 개체로 묶는것 // 투플로 묶인 개체들은 타입의 제한이 없음 var myString = myTuple.1 // 0부터 첫번째 개체 print(myString) // 12.1 let (myInt, myFloat, myString) = myTuple print(myInt, myFloat, myString) //10, 12.1, Hi // 튜플의 값을 선택적으로 추출 가능, _ 를 사용허면 그 값을무시 가능 let myTuple1 = (count: 12, length: 12.5, message: "Hello") //과제 : myTuple의 자료형 print(myTuple1.count) //12
Swift 정리 : 자료형 자료형의 종류와 크기 var x = 1.2 // : Double 생략됨 -> 초기값이 있는 경우 자료형 생략 가능 print(type(of:x)) //Double let s = MemoryLayout.size(ofValue: x) //8 let t = MemoryLayout.size print(s, t) //8 8 자료형의 최댓값 최솟값 print("Int32 Min = \(Int.min) Int32 Max = \(Int.max)") //자료형에 대한 최댓값과 최솟값 변수 출력 var x : Int = 15 print(x) //15 print("x ==> \(x)") // x ==> 15 // \(출력하고 싶은 변수나 상수) 문자 데이터 타입 : Charater var myChar1 : Character..
Ep10 : CORS / CSR / SSR 알아보기 CORS(Cross-Origin Resource Sharing) 서로 다른 도메인에서 리소스 요청을 주고받을 때 보안상의 이유로 주고받을 수가 없는 상황이 발생하는데 이를 해결하기 위해서 나온 것이 CORS이다. 예를 들어서 웹 브라우저와 웹 서버, 날씨 API 서버가 있을 때 웹 브라우저에서 웹 서버를 통해 날씨 API를 받아오게 되는데 이는 과정이 복잡해 바로 웹 서버에서 날씨 API를 받아오고 싶어 진다. 하지만 도메인이 다르기 때문에 받아오지 못하기 때문에 CORS를 이용하는 것이다. CORS는 간단하게 관문이라고 생각하면 된다. 가져오는 리소스들이 안전한지 확인하고 안전하다면 넘겨주는 것이다. CSR(Client Side Rendering) CSR이란 클라이언트 측에서 모든 것을 작동하는 것을 ..
Ep09 : marshmallow로 Python에서 직렬화/역직렬화 처리하기 직렬화/역직렬화 직렬화 : 어떤 데이터를 다른 곳에서 사용할 수 있게 다른 포맷의 데이터로 바꾸는 것 역직렬화 : 다른 포맷의 데이터로 바뀐 데이터를 원래 포맷으로 복구하는 것 marshmallow 클래스 dump_only : 역직렬화 중에 스킵하는 필드(읽기 전용 필드) load_only : 직렬화 중에 스킵하는 필드(쓰기 전용 필드) many : 객체가 list로 직렬화되기 위해서 객체가 collection인 경우 True로 설정을 해야 한다. marshmallow 사용해보기 - 직렬화 serialization.py를 하나 만들고 pip install -U marshmallow를 터미널에 입력하여 설치해 준다. 만든 serialization.py에 아래 코드를 입력해 준다. 개 클래스를 정의하여 이름..