
- 이론으로 아무리 공부해도 흔히들 말하는 객체지향적인 코드 이제는 너무나도 잘 이해하고 있다고 생각하는데 막상 내가 짜야하는 비즈니스 로직 등 코드들에는 왜 이렇게 적용하기 어려울까?- 회사에서 진행했던 모듈화가 정말 잘 설계된게 맞을까? 요즘 흔하게 하고 있는 고민들입니다. 시니어 개발자로 나아가기 위한 필수적인 고민이라고 생각하고 많이 많이 고민하던 와중에 너무나도 유명하신 노수진님의 강의가 엄청나게 할인하기도 하고 좀 더 유연하고 확장성있는 모듈화라는 문구에 너무 이끌려 결제를 하게 되었습니다. 아직 완강한 건 아니고 꾸준히 듣고 있지만 해당 강의를 들으면 좋을 사람들은 누구인가에 대해서 이야기해보려고 합니다. 👍 해당 내용을 원하시는 분들은 들으면 좋을 것 같아요- RIBs 아키텍처의 사용법..
공식문서 설명 번역기 딱 돌리면 동적으로 생성된 자식테스크들의 그룹 이라고 번역되는데 그냥 여러 테스크를 병렬적으로 수행하고싶을때 쓴다고 생각하면 될 것 같음 @frozen struct TaskGroup where ChildTaskResult : Sendable 실행 방법 withTaskGroup(of:returning:body:) 메소드 사용 of: 자식 테스크들의 리턴 타입 returning: 그룹 테스트의 리턴 타입이며 하위테스크의 결과로 새로운 타입을 만들어 리턴도 가능함 기본값을 사용하면 하위테스크타입의 배열 형태로 반환 body: 작업테스크 추가 구문 실행 순서 Tasks added to a task group execute concurrently, and may be scheduled in ..
혼자 공부하거나 프로젝트를 진행할때와 다르게회사에서 근무하다보니 생산성에 대한 고민이 조금 생기기 시작했다. 생산성을 높이는 다양한 방법이 있다컴파일 시간을 줄이거나디버깅속도를 높인다던가더욱 더 재사용성, 가독성있는 코드를 짠다던가? 오늘은 위 방법들보단 더 단순하게 생산성을 높일 수 있는 내가 주로 사용하는 단축키들을 정리해보고자 한다. Xcode 단축키⌘(CMD) + ⇧(SHIFT) + F : 전체 파일 스트링 검색 ⭐️⭐️⭐️ ⌘(CMD) + ⇧(SHIFT)+ O : 빠른 검색 ⭐️⭐️⭐️ ⌘(CMD) + ⇧(SHIFT)+ J : 현재 보고있는 파일 네비게이터에서 위치 찾아줌 ⭐️⭐️⭐️ ⌃(CTRL) + 6 : 현재 파일 요약 (method, variable list) 크기가 큰 파일에서 함수, ..
Textfield에서 기본으로 제공하는 ClearButton은 다크모드에서 잘 보이지 않아요. 그래서 rightView에 커스텀 버튼을 추가구현 해주는 방법을 쓰곤 했었는데 그럴 필요 없이 아래와 같은 방법으로도 ClearButton 변경이 가능합니다! if let clearButton = textField.value(forKeyPath: "_clearButton") as? UIButton { clearButton.setImage("UIImage객체"), for: .normal) } self.textField.clearButtonMode = UITextField.ViewMode.whileEditing "UIImage객체" 부분만 필요한 UIImage객체를 넣어 사용하시면 될 것 같아요

아이폰 기본앱 중에 날씨앱 다들 한번씩은 들어가보셨죠? 눈이 오면 눈이 내리고 비가 오면 비가 내리는 효과 한번은 보셨을 것 같은데요. 이번에 SpriteKit을 통해 오버헤드가 크지만 화려한 애니메이션? 효과를 다루어 보려고합니다. SpriteKit은 간단한 2D게임을 만드는데에도 사용되는 프레임워크인데 오늘은 Particle Emitter만 다루어 보겠습니다. Particle Emitte editor를 사용해서 각각 속성을 변경하며 실시간으로 실험하고 그 결과를 즉시 볼 수 있구요! 이 file을 ReferenceNode로 인스턴스화해서 Scene에 추가해주는 방식으로 사용됩니다. Editor는 스토리보드 처럼 시각적인터페이스를 제공해주어서 코드를 사용하지 않고 독립적인 effect를 만들 수 있어요..

요즘 iOS 게임 앱을 만들고싶은 생각이 많이 들어요! Unity 같은 게임엔진을 따로 공부하지 않아도 스위프트에서 제공해주는 여러 Kit이 존재하더라구요! 갑자기 할 수 있겠다는 생각과 의욕이 생겨서 GameplayKit부터 공부해볼게요. 순조롭게 공부를 마치고 제 이름으로된 게임을 하나 출시할 수 있었으면 좋겠네요!! GameplayKit은 기초적인 툴을 제공하고 게임설계를 위한 기술을 제공하는 객체지향 프레임워크입니다. GameplayKit은 기능적이고 재사용할 수있는 구조로 게임을 디자인하는 도구뿐만 아니라 캐릭터 이동이나 적대행동(AI 적 행동?)같은 게임 기능을 설계하거나 강화하는 기술을 포함합니다. GameplayKit은 게임디자인과 개발측면의 많은부분을 다룹니다. GameplayKit 기능..

Equatable은 기본 자료형들이 기본적으로 채택하고 있기도하고 개발문서를 보면 자주 볼 수 있는 프로토콜이더라구요!! 이것도 확실히 공부하고 넘어가려고 합니다!! 자 개발문서를 들어가 봅시다~! A type that can be compared for value equality 값이 같은지 비교할 수 있는 타입입니다. 라고 해석해 봤는데 맞을까요!? 개요를 보고 좀 더 파악해봅시다~! Equatable프로토콜을 채택한 타입(자료형)은 == 오퍼레이터를 사용해서 같은 값인지 != 오퍼레이터를 사용해서 같은 값이 아닌지 비교할 수 있다고 합니다! 그리고 Swift 표준 라이브러리의 대부분의 기본 자료형은 Equatable을 채택하고 있다고 합니다 우리가 사용하던 그 비교 연산자들이 그냥 쓸 수 있는게 아..
Indetifiable Protocol 프로토콜을 공부하려다 보니 AssoicatedType이 나오더라구요!? 확실히 공부하고 지나갑시다!! TypeAlias 우선 typealias를 알아보는게 좋을 것 같더라구요 typealias는 기존에 선언되어있는 타입들에 대한 별칭? 별명을 선언해주어 좀 더 이해하기 쉽거나 가독성있게 해줄 수 있는 키워드이며 아래와 같이 사용합니다. typealias { 별명 } = existing type { 존재하는 타입 } 굳이? 왜? 라는 생각이 드실까봐 예제를 몇개 꺼내어 볼게요. typealias Name = String 기존에 존재하는 String타입에 Name이라는 별명을 지어줬습니다. 이렇게 되면 해당 Name이라는 타입을 실제 사용은 String으로 쓸 수 있습..