본문 바로가기

Dev37

[Swift 기본기] Value type과 Reference type의 메모리 할당 정말 오랜만에 다시 글을 써봅니다. 취준을 하면서 자소서를 하도 쓰다보니 블로그글을 안써도 항상 글을 쓰고 있긴 했으니 감각이 무뎌졌었네요..ㅎㅎ 이제 곧 아마도 2주안으로는 자소서도 일단락될 것 같기도 하고 여유가 생기면 그 주라도 항상 블로그글을 쓰도록 노력해보겠습니다!! 오늘 주제는 돌고돌아 value type과 reference type에 대한 내용입니다. Value type과 reference type은 어째서 왜 간단한 듯하면서도 어렵고 이렇게 공부할게 많은 걸까요?? 🤔 공부를 하면서 Swift의 String와 Array는 가변적인 크기때문에 데이터가 힙에 저장된다고는 어느정도 알고 있었는데, 생각보다 reference type이 stack에, value type이 heap에 저장되는 예외 .. 2024. 4. 12.
[Swift 기본기] weak와 side table 내용이 수정될 수 있는 게시글입니다. 안녕하세요 정말 정말 오랜만에 돌아왔습니다. 오늘 오랜만에 들고 돌아온 주제는 side table입니다. 제가 전혀 몰랐다가 알게된거라 새로 알게된 겸 개념을 정리해보고자 합니다! 우선 제일 처음으로 제가 잘못? 알고 있었던 것 부터 바로잡고 가겠습니다. RefCount의 주석을 참고해보면 알 수 있듯이 Reference Count의 종류는 strong, unowned, weak 총 3가지로 각 각 존재합니다! 저는 reference count는 하나만 존재해서 이를 strong이면 +1 시켜주고, unowned나 weak면 그대로 두고 뭔가 이런식으로 하나를 가지고 조작하는 것이라고 생각했는데 그게 아니였습니다. Strong RC - 0이 되면 object가 dei.. 2024. 3. 15.
팀내 테스트 코드 문화 도입 과정 (Unit test의 본질 재정립) 오랜만에 아티클로 다시 돌아왔습니다. 연말에는 몇일정도 잠시 휴식기간도 가졌고, 새해초부터는 알고리즘 캠프에 들어가서 빡세게 과제들을 하느라 정신이 하나도 없었네요..ㅎㅎ 그래도 이번주부터는 다시 포스팅도 힘내서 써볼 동기부여되는 일들도 있었기에 다시 열심히 해보겠습니다. 오늘 글의 주제는 테스트 코드입니다. 항상 관심이 많았던 주제인데 최근에 좀 새로운 인사이트를 얻게 되어서 아직 팀내에서 명확한 결론이 난 주제는 아니지만 그 과정이 의미있어 이에 대해서 정리해보고자 합니다! 1. 배경저는 MVC로 시작한 프로젝트를 최종적으로 MVVM-C의 형태로 리팩토링을 진행한 경험이 있습니다. 그리고 그 모든 과정을 관통하는 것이 바로 "Testable한 객체"입니다. Testable한 객체를 만들기 위해 객체간.. 2024. 1. 8.
Hashing (Dictionary의 키는 왜 Hashable 타입인가요?) 이번글의 목표 Dictionary의 키는 왜 Hashable 타입인가요? 왜 Dictionary/Set의 탐색은 O(1)인가? 왜 Dictionary 탐색의 최악의 경우는 O(n)인가? Hashable의 hashValue는 왜 Int 인가? Hashing을 왜 하는가? 좋은 해싱 알고리즘이 필요한 이유는? https://soojin.ro/blog/hashable 이번 글의 목표는 위의 질문들에 답변하는 것이 목표입니다. 바로 답을 하진 않을거고, Hashing에 대해서 쭉 살펴본 후에 Swift에서의 hash table 충돌 해결방법을 알아보고, 해당 방법으로 직접 Dictionary를 구현해본 후에 질문에 답을 해보도록 하겠습니다! 레츠고 만약 답변만 보고싶으시다 하시면 쭈욱 내려가서 맨 아래쪽 '답변.. 2023. 12. 15.