![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/V1Efe/btreLKbzHGf/4B0HTRBpiolNz54tJvFKt1/img.jpg)
안녕하세요 Hani입니다. 이번에는 WWDC16에서 발표된 Understanding Swift Performance에 대하여 알아볼 거예요. ☺️ 해당 토픽이 다루는 목차는 총 5개로 이루어져 있어요. 1. Allocation 2. Reference Counting 3. Method Dispatch 4. Protocol Types 5. Generic Code 이번 포스팅에서는 Method Dispatch에 대하여 다뤄보려고 합니다. 컴파일타임에 실행할 메서드를 결정할 수 있을 때 이 것을 Static Dispatch로 동작을 한다고 말합니다. 컴파일타임에 결정된 메서드의 메모리 주소를 런타임에 바로 찾아가니 런타임의 효율이 증가한다고 볼 수 있어요. 👍 inlining에 관해서는 곧이어 설명드리겠습니다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Mmot6/btreJP6aVjA/xXx8yoY23xkVz8guTDn9aK/img.jpg)
안녕하세요 Hani입니다. 이번에는 WWDC16에서 발표된 Understanding Swift Performance에 대하여 알아볼 거예요. ☺️ 해당 토픽이 다루는 목차는 총 5개로 이루어져 있어요 1. Allocation 2. Reference Counting 3. Method Dispatch 4. Protocol Types 5. Generic Code 이번 포스팅에서는 Reference Counting에 대하여 다뤄보려고 합니다. ARC는 참조 타입의 인스턴스가 참조될 때마다 Reference Count를 증가시키고 참조가 해제되면 Reference Count를 감소시켜서 카운트가 0이 되면 인스턴스를 메모리에서 할당 해제시키죠? ☺️ 이 과정은 원자적(atomically)으로 일어나기 때문에 쓰레..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pl83T/btreJabHcMp/axMukzwLEvpqK5VAyTtEz1/img.jpg)
안녕하세요 Hani입니다. 이번에는 WWDC16에서 발표된 Understanding Swift Performance에 대하여 알아볼 거예요. ☺️ 목차는 총 5개로 이루어져 있어요 1. Allocation 2. Reference Counting 3. Method Dispatch 4. Protocol Types 5. Generic Code 스위프트에서는 성능을 고려할 때 세 가지를 고민해야 합니다. 인스턴스를 생성할 때 스택/힙 중 어느 곳에 Allocation되는지 인스턴스를 전달할 때 Reference Counting 오버헤드가 얼마나 발생하는지 메서드를 호출할 때 Method Dispatch의 방식은 어느 것을 따르는 지 이번 포스팅에서는 Allocation에 대하여 다뤄보려고 합니다. 🥰 스택에서는..
암호학의 근원 → 해시 함수의 역함수를 구하는 알고리즘이 없다 → 큰 소수를 효율적으로 구하는 알고리즘이 없다 ( = 큰 숫자는 소인수분해하기 힘들다) 양방향(암호화 알고리즘) 대칭키(Encrypt Key와 Decrypt Key가 같음) → Stream방식 OPT RC4 Block방식 Feistel DESDES를 3번 돌려 키의 길이를 3배 증가시키는 기법 TDES도 있으나 이것도 안씀. → AES 써라 여담으로 TDES는 EEE, EDE 같은 다양한 방법이 존재함 파이스텔 네트워크의 구조적 취약점은 없으나 56비트의 키가 너무 짧아 브루트포스에 취약 키 길이는 64비트지만 패리티비트가 8비트라 실제키(암호화 강도)는 56비트 SPN Substitution Permutation Network → 양자컴퓨..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bImNEH/btreDUS5rqs/m2KT4Srrd1RiJoPlYCbrq0/img.png)
안녕하세요 Hani입니다. 이번에는 NotificationCenter에 대하여 알아볼 거예요. 🥰 먼저 MVC 구조를 한 번 살펴봅시당. MVC 아키텍쳐 패턴에서 컨트롤러는 모델을 직접 참조하여 업데이트할 수 있지만 모델은 컨트롤러를 직접 참조하면 안 됩니다. 두 객체의 tightly coupled한 상태는 상호 의존성을 만들기 때문에 재사용성, 유연함에 악영향을 주기 때문이에요. 🥺 그럼 모델은 데이터 업데이트가 끝났다는 사실을 어떻게 컨트롤러에게 통지할 수 있을까요? 🧐 NotificationCenter는 모델과 컨트롤러 사이의 인터페이스 역할을 하여 두 객체를 loosely coupled하게 만들 수 있습니다. NotificationCenter는 Foundation 프레임워크에 있는 클래스로, 포스..
https://programmers.co.kr/learn/courses/30/lessons/72410?language=swift 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr import Foundation func solution(_ new_id:String) -> String { var id: String = new_id id = id.lowercased() var temp = "" for char in id { if char.isLetter || char.isNumber || char == "-..
- Total
- Today
- Yesterday
- 벨만포드 알고리즘
- 컴퓨터 추상화
- WWDC19
- 최단경로문제
- WWDC21
- 포드 풀커슨 알고리즘
- HIG
- IOS
- 다익스트라 시간복잡도
- rxswift
- mach-o
- 벨만포드 시간복잡도
- WWDC16
- 에드몬드 카프 알고리즘
- Testable
- State Restoration
- MeTal
- 네트워크 유량
- 최단경로 알고리즘
- CPU와 Memory
- 코딩대회
- 최대 매칭
- WWDC17
- 부스트캠프 6기
- test coverage
- 네트워크 플로우
- 강한 순환 참조
- observeOn
- 최단경로 문제
- CompositionalLayout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |