목록전체 글 (78)
몰?.루();
루트 DNS 서버는 전 세계에 몇 대 있을까? 개발자 면접 단골 질문 중에 '브라우저 주소창에 www.google.com을 검색하면 일어나는 일을 말씀해주세요'가 있습니다. 제가 입사할 때도 들었던 질문이었습니다. 평범한 면접과 압박 면접 사이...의 분위기였기에 긴장했어서 잘 기억은 안 나지만, 윈도우 host 파일/ISP DNS/루트 DNS/캐시 등의 단어를 이용해서 설명을 했었습니다. 그 답변에 대한 꼬리 질문 중에 하나가 '그럼 루트 DNS는 딱 1개 존재하는 것인가?' 였습니다. 루트 DNS에 대한 DDos 테러 사건에 대한 기사를 봤던 기억을 떠올리며, '전세계에 13대 존재한다'고 말했었습니다. 그러다가 최근 우연한 계기로 해당 내용과 관련된 자료를 찾아보다가 그 당시 답변이 틀렸다는 사실을..
파이어베이스를 사용하다보면 클라우드 메세징Cloud Messaing 기능을 사용하는 경우가 있습니다. 이를 통해서 앱에 푸쉬 알림을 간편하게 보낼 수 있습니다. 다만 한국에서는 광고성 푸쉬 알림을 보낼 때 주의해야할 사항들이 몇 가지 있습니다. 자세한 건 이 포스팅에서 다루지 않겠지만, 대충 개발자가 유의해야할 사항은 다음과 같습니다. 광고성 푸쉬 알림을 보내기 위해서는 사용자에게 별도로 승인 요청을 받아야하며, 광고를 허용 받았든 거부 받았든 통지해야한다. 2년마다 광고성 푸쉬 알림을 계속해서 받을지 말지 확인 받아야한다. (2년마다 확인 여부 화면을 띄워주기만 하면 되고, 사용자가 딱히 의사 표현을 하지 않았다면 그냥 계속 광고 허용한 걸로 간주해도 됨) 하지만 문제는 클라우드 메시징으로 보낸 푸쉬 ..
학부생 때나 하던 건데 오랜만에 갑자기 퀵 소트 구현이나 해볼까해서 위키피디아에 있는 퀵 소트 수도 코드를 보면서 코틀린으로 그대로 옮겨봤습니다 fun main() { val array = intArrayOf(3,7,8,5,2,1,9,5,4) array.quickSort() println(array.contentToString()) // [1, 2, 3, 4, 5, 5, 7, 8, 9] } fun IntArray.quickSort(start: Int = 0, end: Int = this.size - 1) { if (start >= 0 && end >= 0 && start < end) { val pivotIndex = this.partition(start, end) this.quickSort(start, ..