본문 바로가기
반응형

전체 글72

RelativeTimeFormatter로 상대시간 표기하기 지금 하고 있는 사이드 프로젝트에서 시간 정보를 받아올 때 ISO8601 형태로 받아오는데, 이를 현재 날짜, 시간과 비교하여 상대시간으로 표기해야 했다. 보여주는 형태는 아래 형태대로 보여주고자 했다. 지금, 5분 전, 3시간 전, 2일 전 Foundation 프레임워크에서 RelativeDateTimeFormatter 를 이용하여 상대시간으로 바꿔줄 수 있어서 이를 이용해 메서드를 선언하였다. 서버에서 문자열로 받아오기 때문에 문자열을 Date 포맷으로 변환하는 메서드를 String 에 extension 으로 선언해주고, 이렇게 바꾼 날짜를 Date extension 에서 상대시간으로 바꾸는 메서드를 정의하였다. 날짜 문자열을 Date 형태로 변환하기 // 문자열 -> 날짜 extension Stri.. 2023. 3. 7.
Moya 간단 사용법 - Request sample부터 실제 뷰컨트롤러에서 사용까지 저는 최근 2월에 수료한 연합동아리 UMC 3기에서 협업 프로젝트 와우메이트에서 iOS 파트 리드를 맡았습니다. 제가 담당한 프로젝트에서는 네트워크 통신을 Moya 를 이용해서 네트워크 통신 정보를 추상화하고 있는데요. UMC 3기의 학기중 수업에서는 Alamofire 만 주로 다뤘기 때문에, 간단한 사용법을 정리해둔 것을 공유해봅니다. Moya로 더 편하게 관리할 수 있을거라고 생각해서 작업을 해두었는데 처음 해보신다면 많이 헷갈릴 것 같아요. 한 번 보고 해보시면 수월하지 않을까 싶어 정리해봅니다. 1. Codable 구조체를 선언하기 서버 측에서 전달받은 API 명세에 보면 JSON 예시가 있습니다. 게시글을 등록하는 API를 예로 들어봅시다. { "postTitle":"1번째 게시글", "cate.. 2023. 2. 23.
defer가 호출되는 순서 / defer가 호출되지 않는 경우 defer 구문은, defer 구문이 있는 곳에서, 프로그램 컨트롤을 스코프 바깥으로 옮기기 바로 직전에 실행하려는 코드에 사용한다. defer { // statements } defer 문 안에 있는 내용은 프로그램 제어가 어떻게 이동되는지와는 관계 없이 실행된다. 예를 들어 수동적으로 자원관리가 들어갈 때, 에러가 발생되더라도 액션을 수행해야 할 때 사용한다. Defer가 실행되는 순서 여러개의 defer문이 있을 때 같은 스코프 내에 여러개의 defer 문이 있으면, 실행되는 순서는 보이는 순서의 역순. 마지막 defer 문을 첫번째로 실행한다는 의미는, 마지막 defer 문 안의 내용은 다른 defer 문에 의해서 정리되는 리소스를 참조할 수 있다는 뜻. func 디퍼함수() { defer { p.. 2023. 2. 15.
[WWDC 2022] Embrace Swift Generics 💡 용어 정리 concrete type 구체타입 opaque type 불투명타입 underlying type 기반타입 existential type 실존타입 type erasure 타입 이레이서 boilerplate code 보일러플레이트 코드 Swift 5.7에서의 제네릭 제네릭은 Swift에서 추상 코드를 작성하는 기본적인 툴. 코드가 발전함에 따라 복잡성을 관리하는데 매우 중요. where T: Idea 제네릭은 특정 타입의 세부사항을 추상화하는데 사용 중복되는 구현이 있는 오버로드 코드를 작성하고 있다면 일반화해야할 때 구체 타입으로 시작해서 필요할 때 일반화 하기 다형성 Polymorphism 다형성은 다른 구체 타입에서 하나의 코드가 다르게 동작하도록 코드를 추상화하는 것 image by co.. 2023. 2. 14.
[Objective-C] .h와 .m 파일의 연결성 Xcode에서 obj-C 프로젝트간의 연결성과 씬 뒤에 숨겨진 코드를 이해하는 것이 중요하다. 클래스의 public이랑 private한 파트를 나누는데 사용이 됨. .h는 헤더 파일로 마치 API처럼 클래스의 public 선언을 하는 파일이고, .m파일은 비공개되는 구현을 함. 다른 파일에서 함수를 호출하려고 할 때 참조를 위해 .h 파일을 import 해와야 한다. #import .h 파일에서 public @property를 클래스에 선언할 수 있음. @property (strong, nonatomic) NSString *something; 이 @property는 NSString 클래스 오브젝트의 포인터. 모든 오브젝트는 힙에 있으므로 이 있어야함. 별개로 이 의 뜻은 오브젝트 포인트를 프로퍼티가 ni.. 2023. 1. 30.
[책 리뷰] 일의 기쁨과 슬픔 - 장류진 # 시작하며 제가 참여하고 있는 독서모임 그룹챗에 어떤 분이 최근에 한 링크를 올려주셨는데요. 장류진 작가의 『일의 기쁨과 슬픔』 을 원작으로 한 연극이 10월에 공연을 앞둔다는 소식이었어요. 코로나 19이후로는 극을 잘 찾아보지 않았는데, 초연때보다 더 완성도를 높여서 돌아왔다고 하니 기대가 되더라고요. 서울시극단 ’일의 기쁨과 슬픔’ 10월 재연…“정원조, 김유진, 박동욱, 윤덕원 등 출연” - 서 [서울문화투데이 진보연 기자]직장인들의 리얼한 이야기를 담은 연극 ‘일의 기쁨과 슬픔’이 오는 10월 공연을 앞두고 캐스팅을 공개했다. 은 현시대를 살아가는 직장인이라면 누구나 공감할 www.sctoday.co.kr 『일의 기쁨과 슬픔』 은 2018년 창작과 비평에서 신인소설상을 받은 작품을 표제작으로 두.. 2022. 9. 11.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터7. 연결리스트 도전과제 [Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터7. 연결리스트 도전과제 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 2. 기초 자료구조 Elementary Data Structure 챕터 7. 연결 리스트 도전과제 Linked Lists Challenges 이번 챕터에서 연결리스트로 자주 사용되는 다섯가지 문제들을 다뤄볼 겁니다. 이 문제들은 다른 도전과제에 비해서는 상대적으로 쉽고, 자료 구조에 대한 여러분의 지.. 2022. 7. 11.
[책리뷰] 타이탄의 도구들, 팀 페리스 /세계 최고들은 뭐가 다를까? 내 일상에 넣고 싶은 습관과 팁들 이제 1년의 절반이 거진 지나갔습니다. 올해 저는 선택과 집중하겠다는 결심으로 iOS 개발 공부를 하면서 개인 프로젝트를 학교 수업과 병행하고 있었는데요. 사회적 거리두기도 해제되고, 날씨도 요즘 좋아서 자꾸만 공부보다는 딴 생각이 슬금슬금 들더라고요. 이런 제 맘을 아는지 저희 집 고양이도 제가 공부하는 아이패드 위에 이렇게 기대서 자곤 합니다. 올해 초보다 집중도도 떨어진 것 같고 고양이처럼 자꾸만 꾸벅꾸벅 졸고 싶은 요즘, 동기부여가 될 책을 읽으려고 찾아보던 중이었는데요. 요즘 제가 수강하는 iOS 개발 강의에서 슬랙에 학습자 커뮤니티를 제공하는데, 여기서 자기개발서 관련된 스레드에 을 잘 읽었다는 내용이 있어서 바로 책 읽기 시작했습니다. 타이탄의 도구들 세계 최정상에 오른 ‘타이탄’이 밝힌 놀.. 2022. 6. 11.
[서비스경험디자인기사] 2022 필기, 실기 참고자료 총정리! + 22.12.30 업데이트 + 2022.12.28 한국디자인진흥원에서 2020년~ 2022년도까지 기출문제를 공개했습니다. 아래 배포자료 링크 / 첨부파일로 다운받을 수 있습니다. 시작하며 안녕하세요. 올해도 서비스경험디자인기사의 필기 시험접수가 2주 앞으로 다가왔네요. 작년 이맘때 공부하면서 어려웠던 것은 시험이 나온지 얼마 안 되다보니 자료가 별로 없는게 어려운 점이었는데요. 작년에 모았던 자료들과 이번에 새로 업데이트된 자료들을 한꺼번에 모아두었습니다! 작년에 합격했지만 여전히 공부할 내용들은 계속 끝이 없네요😅 자격증을 취득한 건 좋지만, 서비스경험디자인기사 문제들을 재밌게 잘 내주셔서 이번 시험도 어떻게 나올지 참 궁금해집니다. 공부하기 전에 여기에 있는 자료들로 공부하신다면 시험준비는 걱정없을거에요! 대부분 파일과 이미.. 2022. 5. 30.
반응형