-
[1%의 네트워크 원리] 프로토콜 스택의 내부 구성General/🕸 Network 2022. 2. 6. 22:34
안녕하세요🐶 이번 주말에 저는 선물 받은 조엘 온 소프트웨어 라는 책을 읽었습니다. 책 내용 중 '허술한 추상화의 법칙' 이라는 주제에 대해 보게 되었는데, 작가가 추상화의 예로 TCP 와 IP 를 들었습니다. 안정적인 통신을 보장하는 TCP 는 사실 불안정한 IP 를 기반으로 이루어지며, 이것이 바로 추상화의 마법 🧙♀️ 이라고 설명합니다. ( 실제 내용은 추상화를 옹호하려는 취지의 글은 아닙니다. ) 흥미로운 부분이기도 했고, 오랜만에 네트워크 개념도 복습할 겸 리마인드 하는 마음으로 당분간 해당 부분을 다시 정리해볼까 합니다 :) 구성 요소를 중심으로 관심 있는 부분 살펴보기 애플리케이션 영역에는 네트워크 애플리케이션과 소켓 라이브러리가 있다. 윗 부분이 아랫부분의 기능을 사용하여 목적을 달성하는..
-
[Swift] if case let 를 사용하여 불필요한 코드 줄이기iOS/🟠 Swift 2022. 1. 16. 21:53
안녕하세요🐶 이번 시간에는 if case let 패턴을 사용해 switch-case 구문의 boiler plate 를 줄여보도록 하겠습니다. 언제 쓰는가? 열거형을 처리할 때 보통 저는 switch-case 를 사용했었습니다. 단일 case 만을 처리하고 싶어도 같은 방법을 사용했습니다. 떡볶이 열거형을 예로 한 번 들어보자면: enum 떡볶이 { case 일반 case 치즈 } let 내떡볶이 = 떡볶이.치즈 switch 내떡볶이 { case .치즈: 치즈토핑얹기() case .일반: break; } 만약 더 많은 케이스가 있는데 하나만 처리하고 싶은 경우라면, default 문을 사용할 수도 있습니다. switch 내떡볶이 { case .치즈: 치즈토핑얹기() default: break } 이렇게 단..
-
4장: 애자일 프로젝트 진행 관리📕 도서/애자일 & 스크럼 프로젝트 관리 2022. 1. 16. 18:06
책을 읽는 동안 중복되는 키워드들이 자주 나옵니다. 그것들이 애자일에서 중요하게 생각하는 내용이겠지요. 저는 개인적으로 그 철학에 적극적으로 동감하고 있어 재밌게 술술 읽히는 것 같습니다 🥳 4.1 전통적 진행 관리의 한계 계획을 아무리 완벽하게 수립했더라도, 업무를 진행하다 보면 프로젝트는 예상치 못한 방향으로 틀어지게 된다. 틀어지면 업무량이 증가한다 이런 진행 관리 방식에는 한계가 있다. 관리자가 업무의 불확실성을 고려하지 않는다. 관리자가 던져둔 마감 기한 기한을 맞추기 위해 설계 고민이나 테스트를 충분히 하지 않고 마무리한다 기술 부채 : 부족한 업무를 나중에 보완해야할 업무를 남겨 놓는 것 업무 불균형과 개인 중심의 평가로 상호 협력이 떨어진다 할당된 업무는 그 팀원 책임으로 혼자서 수행한다 ..
-
[RxSwift] DisposablesiOS/🔁 RxSwift ⁄ Combine 2022. 1. 12. 23:03
subscribe 메서드가 반환하는 Disposable 프로토콜 타입 인스턴스. 옵저저블 자원 정리에 사용한다. 옵저버블 자원 정리에는 총 3가지 방법이 있다. completed, error 이벤트의 발생으로 자연적인 자원 정리 dispose() 호출 DisposeBag 에 추가하기 공식문서에서는 DisposeBag 에 추가하는 것을 추천한다. Disposable 을 DisposeBag 에 추가해 놓으면, DisposeBag 이 정리되는 시점에 같이 정리된다. let bag = DisposeBag() Observable.from([1, 2, 3]) .subscribe { print($0) }.disposed(by: bag) 자세한 내용은 여기서 Disposables 리소스 정리에 사용되는 객체이다. ww..
-
ARM 이해하기General/🟢 General 2021. 12. 27. 14:07
궁금증의 발단 이전 글 “x86_64? arm64?” “ARM 기반 애플의 SoC 를 이해하기 위한 간단 배경지식” 저는 상식으로 이런 내용들을 이해해가는 과정이 너무 재미있더라구요 :) ARM 이란? ARM 은 ARM 아키텍처를 설계하는 영국 소재의 팹리스 회사다. ( 현재 NVIDIA 의 인수 절차 진행 중 ) 동시에 ARM Holdings 에서 설계하는 명령어 집합의 총칭이다. * ARM은 타사에 라이센스를 제공해서 받은 로열티로 수익을 낸다 대표적인 상품으로 스마트폰 등의 모바일 디바이스의 AP 로 사용되는 Cortex 아키텍처 등이 있다. 애플은 아이폰6s 이후부터 ARM 의 명령어셋 라이센스를 취득해 ARM 호환 CPU 아키텍처를 직접 설계하여 사용하고 있다. IDM, 팹리스, 파운드리 반도체..
-
Could not find module 'Kingfisher' for target 'x86_64-apple-ios-simulator' 해결iOS/🛠 이슈와 궁금증 2021. 12. 27. 11:38
메시지 간단 해석 x86_64 시뮬레이터 용 Kingfisher 모듈을 못찾겠다. 대신 arm64 와 arm64 시뮬레이터 용 모듈은 찾았다. 에러가 발생한 상황 인텔 1명, M1 2명으로 진행중인 협업 프로젝트 저는 develop 브랜치에서 끌어와서 M1 으로 최초 빌드한 상황 왜 이 부분이 혼란스러운지? 나는 M1 맥북 프로를 사용하고 있다 (ARM 기반 맥) 시뮬레이터는 arm64 로 돌아갈 것이다 x86_64 시뮬레이터를 사용하고 있지 않다! Open using Rosseta 옵션으로 실행시키지 않음 발견한 원인은? 인텔 팀원이 타겟의 build settings 에서 Excluded Architecture 에서 arm64 로 설정해 놓았다. 아마 팀원이 반대의 경우 (M1 프로젝트를 인텔에서 빌드..