분류 전체보기
-
Nimble - Behavior Driven DevelopmentLibrary 2025. 4. 12. 06:36
안녕하세요. 그린입니다 🍏이번 포스팅에서는 저번 Quick에 이은 Behavior Driven Development 2탄인 Nimble입니다 🙋🏻사실, Nimble부터하고 Quick을 하는게 맞나 싶긴했지만 뭐 서로 연관이 있을뿐 뭐가 먼저다 그런건 없으니 괜찮을거라 생각해요!그럼 바로 알아볼까요? Nimble?XCTest만으로 테스트 코드를 작성하다보면 많은 분들이 가독성이 떨어진다고 느낄때가 많아요.비교하는 표현 자체가 제한적이여서 그럴 수 있죠.XCTAssertEqual, XCTAssertTrue, XCTAssetNil과 같은 메서드들은 기능으로는 잘 동작하지만 표현이 제한적이기에 BDD 스타일에서는 조금 어려울 수 있습니다.즉, 명확하게 사용자 행동 양식의 테스트 의도를 나타내기 어려워요 ?..
-
Quick - Behavior Driven DevelopmentLibrary 2025. 4. 5. 08:42
안녕하세요. 그린입니다 🍏이번 포스팅에서는 iOS에서 외부 테스트 프레임워크인 Quick에 대해 알아보겠습니다 🙋🏻그리고 부제로 Behavior Driven Development라고 작성해놨는데요.BDD에요. 즉, 이러한 스타일로 Quick을 이용해 테스트를 작성할 수 있도록 해줍니다.XCTest보다 더 가독성이 좋고 구조적인 테스트 코드를 작성할 수 있도록 도와주죠! 또한, 이번 포스팅에서는 소개되지 않았지만, 이어 속편으로 Nimble이라는 라이브러리도 같이 소개해볼거에요. Nimble과 함께 사용되는것이 테스트 코드를 짜는데 더 편리하고 합이 좋아요 🙂 그럼 본격적으로 Quick을 알아볼까요?Quick?Quick은 BDD 스타일의 테스트 프레임워크로, 테스트 시나리오를 명확히 선언하고 작성할..
-
Crash 감지하고 다루기iOS 2025. 3. 29. 09:16
안녕하세요. 그린입니다 🍏이번 포스팅에서는 뭔가 개념적으로 각잡힌 정보 전달의 목적보다 제가 삽질하면서 그냥 코드로 나타내본 내용을 전달해볼까해요! 주제는, iOS App Crash를 감지하고 이를 다루기 위한 방법이라고 볼 수 있습니다.앞서 말했듯이 삽질 코드라서 부족한 부분이 있을수도 있고 논리적으로 안맞는 부분도 있을 수 있지만 그래도 주제 자체에서는 삽질을 완료하고 검증한 상태라 볼 수 있어요 😃 그럼 바로 들어가볼까요? Crash?앱에서는 의도치 않은 crash가 충분히 발생할 수도 있죠.메모리 부족 이슈라던지, 뷰 바인딩이 제대로 안되어 있다던지 아니면 의도적으로 fatalError 등 크래쉬를 내는 환경이라던지 너무 무수히도 많은 앱 크래쉬 현상이 발생할 수 있습니다. 물론, 이를 최대한..
-
Mermaid로 다이어그램 편하게 그리기Etc 2025. 3. 22. 12:59
안녕하세요. 그린입니다 🍏이번 포스팅에서는 개발과는 조금 별도지만, 편한 툴이 있어 소개해볼까 합니다 😃Mermaid라는걸로 다이어그램을 편리하게 그릴 수 있어요 🙋🏻 Mermaid?Mermaid는 텍스트 기반으로 다양한 다이어그램을 생성할 수 있도록 도와주는 아주 편리한 툴입니다!마크다운 문서 내에서 다이어그램을 쉽게 삽입할 수 있고, Github, notion 등 다양한 플랫폼에서도 지원을 해줍니다. 특히 저는 LucidChart와 Confluence를 많이 사용하고 있는데 아주 제격입니다. Mermaid는 JavaScript로 구현되어 있어서 별도의 소프트웨어 설치 없이도 브라우저 환경에서 손쉽게 사용이 가능해요.특히 개발자가 코드처럼 치면서 쉽고 빠르고 그리고 또 효율적으로 다이어그램을 생..
-
MarqueeSwiftUI 2025. 3. 18. 19:00
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Marquee에 대해 알아보고 간단히 SwiftUI로 구현해보려고 합니다. 🙋🏻 Marquee?Marquee는 텍스트가 좌우 혹은 상하 형태로 자동으로 이동하는 UI 요소입니다.일반적인 쓰임으로는 많이들 보셨듯, 공지사항이나 주식 시세와 같은 표시 등에서 많이 사용됩니다!어떤건지는 아래 실제 구현하면서 더 자세히 볼께요ㅎㅎUIKit에서는 UIView.animate를 활용해 Marquee 효과를 구현해볼 수 있죠.그런데 이번 포스팅은 SwiftUI에 초점이라 GeometryReader, Animation 등을 조합해 한번 Marquee 컴포넌트를 만들어볼까 합니다. 그럼 시작해볼까요?Marquee in SwiftUI코드부터 보시죠! struct Content..
-
iOS에서 서버 과부하 감지 및 API 호출 최적화iOS 2025. 3. 15. 09:51
안녕하세요. 그린입니다 🍏이번 포스팅에서는 iOS에서 서버 과부하를 감지하고 이에 API 호출을 최적화 하는 몇가지 방법에 대해 한번 다뤄볼까 합니다 🙋🏻IntroiOS뿐 아니라 모든 프론트엔드 개발에서는 서버와 원활한 통신이 필수적이죠.하지만 과도한 API 호출은 서버에 부담을 주기에 성능 저하, 트래픽 초과, 비용 증가 등의 문제를 야기할 수가 있어요.따라서 서버의 상태를 모니터링하고, 과부하 여부를 판단해 적절히 API 호출을 조절하는 전략이 필수적입니다. Criteria for determining server overload서버 과부하라는걸 판단하는 기준에 대해 한번 얘기해볼까 합니다.우리는 서버가 느려졌네? 라는걸 감으로 판단하기보다 데이터를 통해 측정해야 하죠. 어떤 방법들이 있는지 볼..
-
Xcode rsync.samba deny file-write-create 오류 분석기Xcode 2025. 3. 12. 10:06
안녕하세요. 그린입니다 🍏이번 포스팅에서는 기술적인 새로운걸 알아가는것보다 실제 겪은 Xcode에서 발생할 수 있는 오류에 대해 파악해봅니다 😃 What's Error?최근 Xcode에서 iOS 프로젝트를 빌드하는 과정에서 Sendbox: rsync.samba deny(1) file-write-create 오류를 경험했어요! 해당 오류는 rsync(Samba 관련 프로세스)가 특정 디렉터리에 파일을 생성하려 할 때, macOS의 보안 정책으로 인하여 차단되면서 발생하는 문제입니다. 일반적으로는 SMB(Network File System) 공유 디렉터리, Xcode의 새로운 샌드박스 정책, macOS의 보안 제한 및 디렉터리 권한 문제로 인해서 이 오류가 발생할 수 있어요. 그렇기에 이 오류가 발생하는..
-
Server-Driven UIiOS 2025. 3. 7. 18:08
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Server-Driven UI에 대해 톺아보겠습니다 🙋🏻Server-Driven UI?서버 드리븐 UI라는건 앱의 UI를 서버에서 동적으로 정의하고, 클라이언트는 이걸 해석해서 화면을 구성하는 방식을 말해요 😃즉, 화면을 구성하는 컴포넌트 요소들을 JSON 등의 형식으로 서버에서 내려주면 클라이언트가 이를 해석해서 UI를 동적으로 렌더링합니다.결국 지향하는 목표는 앱 배포 없이 UI 변경이 자유롭고, A/B 테스트 등에 용이하다는 특징이 있죠! 그럼 서버에서 어떻게 내려주는건지 한번 살펴볼께요. JSON 기반 UI 정의서버는 UI 요소들을 JSON 형태로 정의해서 클라이언트에 전달해줍니다. 아래 서버 리스폰스 예를 볼까요? { "title": "메인 화..