3월의 마지막날이다. 정말 시간이 빠르고, 2월이 개인적인 일로 참으로 힘들었는데 이제 그 결실이 맺어진 것 같다.
오늘 배운 수업의 중심 내용은 만든 앱을 앱스토어에 올리는 것이다. 이 방법은 실제로 직접해봐야 제대로 이해되겠지만 인증서
에 대한 개념을 간단하게 배웠다. 어떻게 암호화하여 해킹, malware로부터 보호를 받을 수 있는지였다. 인증서의 암호는 보통 private key + public key 로 발급하며 소수의 곱
으로 이루어진다고 배웠다. 그 소수도 보통 커다란 소수이기에 일반적인 컴퓨터로 비밀번호를 찾기란 10년이 걸린다고 하였다.
또한 각 주기로 갱신또한 하여 IOS가 인증보안에 신중하다는 점을 알았다. 안드로이드에서 올리는것 대비 어느정도로 보안에 신중하는지 알 수 있는점이었다.
오늘은 미션에 집중하기보다는 개인적인 일에 더 초점을 두고싶어서 간단하게 ps문제만 한개 풀어보았다. 어쩌다보니 이 문제도 소수에 대한 문제였다. 소수찾기
에라토스테네스의 체
에 관해서 공부를 해보았고 이를 통해 알고리즘에 대한 개념을 보면서 이해하였다. 또한 스위프트를 쓰다보니 c나 java에서 자주쓰던 for( ; ; i+2)등의 개념을 어떻게 접목시켜야 할지 보다보니 stride()
를 알게 되었다.
이 문제의 핵심은 다음 코드이다.
for i in 2...max-1 {
if primeNumbers[i] {
for j in stride(from: i*i, to: max, by: i){
primeNumbers[j] = false
}
}
}
i*i
는 이미 i가 true였기때문에 i의 i배수는 false임이 당연한것이다 ex) 2가 소수이면 4(2*2)는 이미 소수가 아니다. 그리고 by : i에 의해 4,6,8...은 모두 소수가 아니게 된다.오늘은 2021년중 가장 행복한 날이다. 내 개인적인 문제가 다 해결되었고, 앞으로는 행복할 거라 믿는 순간이 있었던 날이었다. 올해 취업문제, 학습문제도 중요하지만 velog에는 말할 수 없는 지극히 개인적인 이 일이 내 인생에서는 최우선순위라고 생각한다. 오늘은 행복하게 잘 수 있겠다.
결론