IT(9)
-
Swift에서 'Sort' 와 'Sorted'의 차이
Python에 익숙해진 손뚱아리가 습관적으로 Sorted를 눌러대려니 Swift는 내게 네가지 옵션을 줬다. 뭐가 다른건가 해서 일단 가장 익숙한 sorted를 선택해봤다. 원하는 형태로 클로져와 리턴값을 뚝딱거려주니.. 당연하게도 경고를 준다. 아래의 예시는 dayList에 속하는 Day 자료형들을 추출해서 날짜순으로 정렬을 시도한 것이다. sorted를 통해 나온 결과가 사용되지 않았다는 것. 실제로 빌드해봐도 리스트가 정렬되지 않고 요지부동인 걸 확인할 수 있었다. 무엇인 문제인고 정의를 살펴보니, Sort: Sorted: 다시말해 Sort의 경우 콜랙션으로 묶인 데이터들을 직접 주어진 정렬 기준에 따라 정렬하는 데에 반해 Sorted는 해당 데이터들을 고스란히 복사하여 정렬 기준에 따라 정렬 후 ..
2023.02.23 -
UIKit과 Foundation 차이점(애플은 다 계획이 있구나)
관성적으로 하는 것들에 궁금증이 많아지는 요즘이다. 내가 원하는 프로그램을 만들어가려다보니 한 줄 한 줄 신경써야할 것들이 많아졌고, 이번엔 가장 첫줄에 해당하는 이 두가지부터 햇갈리기 시작했다. 처음 우리가 프로젝트 내에서 파일을 생성할 때에 Swift File을 선택하면 Foundation이 자동으로 임포트되어있고, Cocoa Touch Class를 임포트하면 UIKit이 임포트되어 있는 것을 볼 수 있다. 그럼 대체 Cocoa Touch는 뭐지? 이걸 이해하려면 먼저 아래 iOS의 프레임워크 구조부터 이해해야한다. iOS는 어플리케이션에서 하드웨어까지 도달하는 과정에 다음과 같은 계층 구조를 갖고있는데, 이처럼 Cocoa Touch는 Application에 가장 가까운 계층으로 유저 인터렉션에 직접..
2023.01.12 -
RxSwift는 왜 쓰는걸까?(부제: DispatchQueue의 늪) - 2
2022.11.29 - [IT/iOS] - RxSwift는 왜 쓰는걸까?(부제: DispatchQueue의 늪) RxSwift는 왜 쓰는걸까?(부제: DispatchQueue의 늪) 그동안 RxSwift를 공부하지 않았었다. 당장 스스로 Reactive Programming에 대한 필요성을 못 느꼈기 때문이다. 현업에서 어쩌면 가장 활발히 쓰이고 있는 라이브러리인 것이 자명할 지라도 아직 초보 iO eleste.tistory.com 앞선 글에서 이렇게 서술한 바 있다. 간단하게 말해 코드의 실행이 짜여진 코드에 맞추어 일련의 과정을 따라 수동적으로 이루어지는 것이 아니라, 유저의 인터렉션, API 호출 등에 따라 일정 변수 값(정확이는 이를 포괄하는 상태 값)이 변경되었을때 해당 상태 혹은 상태 변화가 ..
2022.12.12 -
RxSwift는 왜 쓰는걸까?(부제: DispatchQueue의 늪) - 1
그동안 RxSwift를 공부하지 않았었다. 당장 스스로 Reactive Programming에 대한 필요성을 못 느꼈기 때문이다. 현업에서 어쩌면 가장 활발히 쓰이고 있는 라이브러리인 것이 자명할 지라도 아직 초보 iOS 개발자가 뭣도 모르고 유명하니까 쓰는 건 왠지 기분이 나빴다. 그러다 최근에서야 그 필요성을 느끼기 시작했다. 흔한 설명이지만 일단 RxSwift가 무언인가. 하면 Swift에서 Reactive Programming을 가능하게 해주는 라이브러리로 요약할 수 있다. Reactive Programming은 데이터의 흐름의 방향 및 그 동작 방법이 완벽하게 잘 짜여졌던 기존의 명령형 프로그래밍과 달리 '상태 변화'와 그 '전파'에 초점을 맞춘다. 잘 이해가 안간다면 정상이다. 간단하게 말해 ..
2022.11.29 -
남해의 급부상이 기쁜 이유
최근에 회사 건물에서 화장실을 가다가 대문짝만하게 걸린 포스터 하나를 유심히 보게됐다. 입주기업 남해 워케이션 지원 워케이션이란 일(Work)과 휴가(Vacation)을 합친 말로 휴가지에서 쉬면서 일도 하는 문화를 말한다. 쉬러가서까지 일하라는 말이냐! 하기보단 일을 하는데 앞에 바다를 볼 수 있다는 쪽으로 생각하는게 맞다고 생각한다. 아무래도 프론트원 자체가 스타트업들이 옹기종기 모여있는 건물이다보니 내가 디캠프(프론트원 관리주체) 담당자였어도 이런 사업을 펴보고 싶었을 것 같다. 우리가 사업이 안정기였다면 적극적으로 건의해봤을 수도 있겠지만 당장 나는 학교도 다니고 있고 다들 각자의 사정이 있다보니 지금 남해를 가서 일한다는 건 우리 팀에는 무리다. 아무튼 코로나가 남긴 몇가지 선물(이라기엔 잔인하..
2022.09.26 -
useRef에 관한 고찰, DOM의 조작
useRef는 .current 프로퍼티로 전달된 인자(initialValue)로 초기화된 변경 가능한 ref 객체를 반환합니다. 반환된 객체는 컴포넌트의 전 생애주기를 통해 유지될 것입니다. 브라우저에서 js의 존재이유는 DOM의 조작입니다.어떤 이벤트를 받아서 처리하고, 있는 객체를 움직이거나 변화하는 등 모든 DOM의 조작은 js를 사용함으로써 정적 정체성을 탈피합니다.물론 CSS를 통해서도 움직임을 줄 수야 있지만 우리가 생각하는 다이나믹한 이벤트 핸들링은 복잡하거나 불가합니다. 문제는 리액트에서 DOM 요소의 조작입니다. 리액트는 렌더링을 하며 virtual DOM이라 불리는 가상 DOM을 먼저 만들고, 그것을 실제 생성된 DOM과 비교하여 차이가 있는 부분만을 리렌더링하는 방식을 통해 효율성을..
2021.09.12