분류 전체보기

    [iOS] TDD란?

    테스트 주도 개발(Test-Driven Development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화 된 테스트 케이스를 작성한다. 그런 후에 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. -위키백과 단위로 잘라서 테스트를 하는 개념으로 테스트를 통과하는 코드를 작성하기 위해 재사용성과 의존성에 대해서 고민하여 의존성이 낮은 코드를 작성할 수 있도록 유도되는 것 같다. 공부할 때 참고한 블로그 기록을 남긴다. https://leeari95.tistory.com/60 [iOS/Swift] TDD와 Unit Test 테스트 주도 개발(Test-Driven D..

    [Swift] enum 의 raw value 에 대한 회고

    enum 을 선언 한 후 데이터 타입이 명시되어 있지 않아 컴파일 오류가 난 적이 있다. 간단한 것이지만 알아두지 않으면 이유도 모른 체 해결할 수 없는 경우가 생길 수 있으니 기록으로 남겨놓는다. https://woozzang.tistory.com/8 Swift) Raw Value - Enumeration enum Alignment { case left case center case right } 위 코드는 Alignment 라는 열거형의 선언입니다. 위 case 들은 Raw Value (원시 값) 이 설정되지 않았습니다. Raw Value 를 설정하지 않은 case 들은 그 자체가 고유한 woozzang.tistory.com

    [Swift] 네이버 지도 마커 클러스터링 (Quad Tree Clustering)

    https://github.com/pablogsIO/PGClustering GitHub - pablogsIO/PGClustering Contribute to pablogsIO/PGClustering development by creating an account on GitHub. github.com 해당 깃허브는 애플 지도에 맞는 Quad Tree 알고리즘을 적용한 프로젝트이다. 하지만 네이버 지도용으로 커스터마이징 하고 싶었다. 그래서 직접 위 깃허브를 토대로 네이버 지도용으로 만들어보았다! 전체적인 로직은 비슷하지만 스크롤 시 마커가 수시로 다르게 클러스터링 되는 것이 불편하여 스크롤을 해도 같은 부분을 클러스터링 하도록 조금 더 개선을 하였다. (이 부분은 quad tree 알고리즘에 대한 이해도가..

    [Xcode] 단축키 모음집

    일을 수월하게 하기 위해 자주 쓸 만한 단축키 모음들을 정리한 블로그이다. 이런걸 하나하나 정리하다니 대단한 사람들.. https://seons-dev.tistory.com/entry/%EC%9E%90%EC%A3%BC%EC%93%B0%EB%8A%94-Xcode-%EB%8B%A8%EC%B6%95%ED%82%A4-%EB%AA%A8%EC%9D%8C 자주쓰는 Xcode 단축키 모음 Xcode 단축키 SwiftUI의 Xcode를 사용하면서 자주 쓰는 단축키입니다. ⌘(CMD) + ⇧(SHIFT) + J : 열려있는 파일을 프로젝트 사이드바에서 보여줌 ⌘(CMD) + 1 ~ 9 : 왼쪽 사이드바 탭 선택 ⌘(CMD) + 0 : 사이드바 seons-dev.tistory.com

    [Swift] 하이라이트 슬라이드 뷰 만들기 (UICollectionView)

    스크롤 시 가운데 셀이 하이라이트 되고 양 옆 셀을 클릭 시 스크롤 되는 커스텀 콜렉션 뷰를 만들었다. flowLayout을 커스텀하는데 있어 이해하는 시간이 좀 필요했다. 3D적으로도 생각하다보니 더 오래걸린 것 같다. 예시는 다음과 같다. 좌우 스크롤을 빠르게 하거나 옆 셀을 클릭했을 때의 예시 UICollectionViewFlowLayout 정의 import Foundation import UIKit class ZoomAndSnapFlowLayout: UICollectionViewFlowLayout { let activeDistance: CGFloat = 200 // 하이라이트 된 셀 크기 확대 비율 let zoomFactor: CGFloat = 0.2 override init() { super.i..

    정보처리기사 실기 요약 정리

    정보처리기사 실기 요약 정리

    정보처리기사 실기 관련 잘 요약된 url임. 자주 보기 위해 글을 남긴다.. https://nanalike.notion.site/35e0e234d27948afba77f062939f7491?v=2665860b6b564957a78af728ed5acb78 [정처기] 서술형 대비 요약정리 A new tool for teams & individuals that blends everyday work apps into one. nanalike.notion.site https://starrykss.tistory.com/1856 [정보처리기사 실기] 단원별 정리 & 예상 문제 & 기출 문제 정보처리기사 단원별 정리 & 예상 문제 & 기출 문제 정보처리기사 실기 시험을 준비하면서 블로그에 올렸었던 글들을 한 페이지에 정리..

    [Swift] OSLog 사용법

    디버그를 진행 하면서 로그를 좀 더 간편하고 잘 보는 방법으로 OSLog 를 채택하였다. 많은 사람들이 눈에 띄게 하는 방법을 커스텀하여 사용하는 것들을 참고해 보았다. 앞으로도 활용하며 사용해보자. https://sunidev.tistory.com/m/77 [iOS/Swift] OSLog (with. extension) 항상 새 프로젝트를 시작할 때 로깅 라이브러리를 적용하고 있는데, Lumberjack을 사용하다가 김종권님 블로그에서 OSLog라는 로깅 프레임워크를 알게 되었어요. 📌 이번 글은 OSLog 개념과 적용부터 sunidev.tistory.com

    [Swift] SkeletonView 사용법

    작업을 하다가 최신 트렌드 UI/UX를 찾다 기본 인디케이터 보다 SkeletonView라는 것이 눈에 들어왔다. 다음 작업 때 실무에 적용하면 나름 이쁠 것 같다. https://ios-development.tistory.com/850 [iOS - swift] SkeletonView 스켈레톤 뷰 (로딩 뷰) 프레임워크 SkeletonView pod 'SkeletonView'​ 코드로 UI 작성에 편리를 위해 사용한 프레임워크 pod 'Then' pod 'SnapKit'​ Label 2개에 SkeletonView 적용 방법 적용하려는 View에 isSkeletonView = true로 skeleton 활성화 im ios-development.tistory.com https://korjaeyoungyun...

    [Swift] iOS 기기 내 PDF 혹은 파일 첨부 하는 방법

    일하다가 요건으로 pdf 파일을 넘겨줘야하는 상황이 있었다. 애플에서 미리 만들어 놓은 함수를 통해 간단히 파일을 끌어올 수 있었다. 나의 기억력은 나쁘기 때문에 까먹으면 다음에 써먹으려고 적는다... import UniformTypeIdentifiers import PDFKit class VC: UIViewController { let filePickerViewController = UIDocumentPickerViewController(forOpeningContentTypes: [UTType.pdf], asCopy: true) ... func someThingEvent() { filePickerViewController.delegate = self filePickerViewController.allo..

    [Swift] UIImagePickerController 의 사용법

    이거 또한 일하다가 요건으로 나왔기에.. 작성한다. 파일첨부보단 더 간단하다. 커스텀 형식으로도 할 수 있지만 형식적으로 이미지를 애플에서 제공하는 식으로 불러오고 싶다면 UIImagePickerController를 사용하면 편리하다. 카메라로 촬영하기도 해당 컨트롤러를 사용하면 쉽게 접근 할 수 있다. import MobileCoreServices class VC: BaseUIViewController { let imagePickerViewController = UIImagePickerController() ... private func openImageLibrary() { imagePickerViewController.delegate = self imagePickerViewController.sour..