![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uOniu/btqApHyvQzc/xkOjjzelNogCUjBzKg1YBk/img.png)
유니코드는 국제적으로 전 세계 언어를 모두 표시할 수 있는 표준코드이다. 유니코드의 목적은 현존하는 문자 인코딩 방법들을 모두 유니코드로 교체하려는 것이다. 기존의 인코딩들은 다국어 환경에서는 서로 호환되지 않아 한정된다는 문제점이 있었다. 그래서 유니코드를 사용한다. 유니코드는 전 세계의 든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 표준 코드이다. 유니코드는 2바이트, 즉 16비트를 사용해 2^16가지(65536)를 표현할 수 있다. 참고로 '가'는 유니코드로 U+AC00이다. '각'은 유니코드로 U+AC01이다. 이와 같이 표준 코드로 언어를 나타낼 수 있다. UTF는 (Unicode Transformation Format)의 약자이다. UTF는 UTF-8, UTF-16등을 포함한다..
직렬화는 객체 등 특정 구조의 데이터를, 이후 복원할 수 있는 형태의 데이터로 전환하는 과정이다. 역직렬화는 그 반대 직렬화된 데이터를 복원하는 과정이다. 직렬화된 데이터는 아무리 길어도 1줄 정도이다. 직렬화 = 마셜 링 marshaling 역직렬화 = 디마셜 링 demarshaling 직렬화 이유 해당 데이터를 시스템 외부에 저장하거나 전송하기 위해서 사용한다. 역직렬화 이유 시스템 외부에 저장되거나 전송된 데이터를 받아와 복구 후 사용한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kQYjO/btqz3m1Wiu2/wrRtv9YKKk5K8uOHl1yeT0/img.png)
사실 넷플릭스와 같이 추천을 기반으로 사용자에게 콘텐츠를 제공해주는 시스템은 어떤 로직을 기반으로 처리되는지 궁금했다. 요즘 머신러닝을 배우고 싶어 책 한권을 구매한 책에서 추천을 생성하는 방법에 대해 소개해서 다시 정리하고 싶어 글을 쓴다. 책에서는 각 사용자 사이의 거리(유클리드 거리)를 구한 다음 이 거리를 유사도 지표로 사용해 원하는 데이터를 추론한다. 가장 비슷하지 않은 사용자들 사이의 값은 크고, 가장 비슷한 사용자들의 사이의 값은 작다. 유클리드 거리는 다차원 공간에서 점의 점 사이의 거리를 구하는 공식이다. (두 점 사이의 거리를 계산할 때, 두 점을 좌표로 표현하고 각각 대응하는 성분의 차의 제곱을 하여 더한 후 제곱근을 구하는 것) 만약 2차원 공간이 아니라 다차원이라면 벡터의 차원만큼..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/qWeaB/btqyXwetrMK/Y9aylGzuZxtESju2HW26mk/img.png)
소프트웨어는 어떻게 난수를 생성할까? 사실상 컴퓨터는 난수를 생성할 수 없다. 엄밀히 말하면 pseudorandom numbers를 생성하는 것이다. 난수는 수학적인 방법으로 진행된다. 위는 유사 난수를 위한 공식이다. 유사 난수(pseudorandom number)는 난수를 흉내내기 위해 알고리즘으로 생성되는 값을 가리킨다. 이때 유사 난수를 생성하는 알고리즘을 유사 난수 생성기(pseudorandom number generator, PRNG)로 부른다. 예를 들어 5를 넣는다고 가정한다. 5 * 8 = 40이고 을 11로 나눈 값은 7이다. 여기서 나온 결과 값을 다시 앞으로 보낸다. 그럼 7*8을 곱한 56을 11로 나눈 나머지인 1이 나온다. 위와 같이 결괏값을 앞으로 보내준다. 그러면 8을 11..
스위프트 스트링은 character의 집합으로 이루어진 유니코드 문자 값이다. 구조체로 스트링이 선언되어있다. String은 오브젝티브 씨의 NSString와 연결되며 문자열과 함께 동작하는 C 함수와의 상호 운용성을 제공한다. 문자열은 리터럴이나 문자열 보간을 사용해 새문자열을 만들 수 있다. 리터럴은 “” 따음표로 묶인 일련의 문자이다. 문자열 보간은 포함된 표현식을 평가하고 결과를 문자열 형식으로 변환하는 문자열 리터럴이다. 여러 줄 문자열 리터럴은 세 개의 큰 따옴표로 묶여 있으며 각 줄 바꿈 문자는 각각의 줄에 있다. 들여 쓰기는 닫는 구분 기호의 들여 쓰기와 일치하도록 여러 줄 문자열 리터럴의 각 줄에서 된다. 문자열 수정 및 비교 문자열은 사본을 수정하면 원래 문자열의 영향을 받지 않는다. ..
- Total
- Today
- Yesterday
- leetcode
- Animation
- 책
- 애니메이션
- rxswift
- ios
- 스위프트
- ARC
- 독서
- 머신러닝
- Algorithm
- SWIFT
- objc
- string
- RX
- 스위프트UI
- 책 후기
- objective-c
- 알고리즘
- swift5
- stanford SwiftUI
- 딥러닝
- Xcode
- swiftUI
- 책 추천
- iOS SwiftUI
- wwdc
- 문자열
- Deep learning
- ReactiveX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |