struct 3

네임스페이스를 관리해보자 | enum, struct로 namespace 관리하기

몇 달 전에 개인프로젝트를 시작할 때 궁금해서 정리해 봤던 주제에 대해 새싹 세션에서도 언급이 되어서 이 기회에 블로그에도 정리해 본다! 개인 프로젝트 당시, 레퍼런스로 봤던 레포지토리에서 namespace를 enum의 타입 프로퍼티 (static let)으로 작성해 둔 것을 보고 왜 굳이 enum안에서 타입프로퍼티로 정리를 해놓는 걸까 생각했었던 적이 있었다. 이유가 궁금해서 찾아보게 되었고 네임스페이스를 정의하는 몇 가지 방법들과 각 방법들의 단점과 장점에 대해 정리했었는데, 블로그에도 남겨놓으려 한다        이전까지 나는 enum의 rawValue를 활용해서 case로 각각 필요한 문자열 같은 것에 대해 정리해주고 있었었다. 기본적으로 우리가 알고 있는 것처럼 enum은 같은 주제의 값들을 모..

Swift 2024.06.21

[Swift] Swift Performance (2) | Generic을 활용한 성능개선

이전 글에서는 Swift에서 성능일 미치는 세 가지 요소와 구조체가 protocol을 채택했을 때 어떻게 성능이 달라지는지 알아보았다. [Swift] Swift Performance (1) | swift에서 성능을 좌우하는 3가지 요소와 구조체의 성능 변화 struct + protocol을 사용하면 단순하게 struct를 사용하는 것에 비해 성능이 안 좋아진다고 했는데 이 인스턴스를 argument로 전달한다고 가정했을 때 함수 내 로컬 변수로 사용되는 상황해서 어떻게 하면 성능을 좋게 할 수 있을까? 정답은 제네릭 함수를 사용하는 것이다! 이번 글도 WWDC 2016 Understanding Swift Performance 세션과 연관되는 글이다. 우선 제네릭 함수를 사용했을 때와 사용하지 않았을 때의..

Swift 2024.02.07

[Swift] Class와 Struct : 메모리 저장 방식의 차이

Swift에서 클래스, 구조체에 대한 개념을 깊게 생각하지 않으면 그냥 인스턴스를 만들어내는 애.. 정도로 생각할 수 있다. 하지만, 메모리 구조적으로 보면 엄청난 차이가 존재하고 이전에 왜 안되지? 했던 부분들도 이해될 수 있기 때문에 정리해 본다. # 🥨 Class와 Struct의 공통점 차이점을 알기 위해서는 뭐든 먼저 공통점을 알아야겠죠? 클래스와 구조체는 다양한 형식의 데이터를 한번에 관리하는 타입, 즉, 흔히 비유하는 것처럼 붕어빵 틀로 볼 수 있는 것은 아마 모두 아실 것 같아요! 아래처럼 타입속성, 인스턴스 속성, 인스턴스 메서드는 물론이고 계산 속성, 계산 타입속성, 서브스크립트 등등을 관리할 수 있습니다! class someClass { static let a = "a" var b = ..

Swift 2023.09.24