본문 바로가기

전체 글

(83)
독서의 의미와 관심 있는 신작들 나는 책을 좋아한다. 지금 쓰고 있는 것과 같은 단편적인 칼럼 형식이 아니라 출판된 책들 말이다. 특히 종이책. 좋아하는 이유는 수도 없이 많지만 크게 두 가지를 들고 싶다. 여기서 말하는 책은 주로 정보를 전달하는 책이다. 예를 들어 IT 관련 개발 관련 책들이나 수학이나 과학 등 순수 학문들을 다루는 책들. 첫 번째, 책을 통해 지식을 얻으면서 인생을 살아가는데 큰 힘을 얻는다. 이건 단순히 책에 포함되어 있는 지식 그 자체를 말하는 것은 아니다. 정보를 전달하고자 하는 작가의 의도가 나한테 전달될 때는 그 지식이 내 머릿속에서도 구조화되고 그 지식을 실제로 활용할 수 있을 것 같은 힘을 얻는다. AI Agent가 나오고 글을 쓰는 것도, 원하는 지식을 찾는 것도 너무 쉬워졌다. 하지만 어떤 지식이 ..
Flutter로 UI 구성하기 Flutter를 공부해 보니까, Xcode로 iOS 앱을 만들 때와 비교해 신기한 것도 있고 불편한 것도 있었다.UI 렌더링 방식: SwiftUI와의 비교1. UI를 구성하는 최소 단위Flutter는 Widget으로 SwiftUI는 View로 UI를 구성한다. 그래서 기존에 정의된 Widget 또는 View를 사용하거나 사용자 정의 Widget 또는 View를 만듦으로써 UI를 구성해 간다. 2. 선언형 UI두 Framework 모두 선언형으로 UI를 표시한다. 즉 객체에 동작을 명령하는 것이 아니라, 객체가 어떻게 보일 것인지를 표시한다. 하지만 SwiftUI는 함수형 프로그래밍을 활용한 전역적인 modifier를 이용해 View를 조작하지만, Flutter는 class의 parameter를 통해 Wi..
Dart 언어 배우기 Flutter를 이용해 크로스 플랫폼 앱을 만들기 위해, Dart 언어를 배우기 시작했다. 내가 가장 익숙한 언어인 Swift와 비교하면서 학습하고 있는데, 재미있다. JavaScript(TypeScript)를 공부할 때도 느꼈지만, 새로운 언어를 배우면, 그 언어가 가지고 있는 철학이나 특성들을 배울 수 있어서 좋다. 그리고 알고 있는 지식들의 수준이 더 깊어진다. 공부하기 시작한 지가 얼마 안 되어서 그렇겠지만, 객체지향이나 함수형 프로그래밍 언어를 지원하는 현대적인 언어라서 그런지 큰 무리 없이 배우고 있다. Swift와는 다른 몇 가지 차이점들을 소개한다.컴파일 방식: 다트는 JIT(Just In Time)과 AOT(Ahead of Time) 컴파일 방식을 지원하는 반면 Swift는 기본적으로 A..
무엇을 배워볼까 최근에 네트워크 분야에 대한 관심이 생겼다. 나는 주로 (회사에서) 서버로부터 리소스를 갖고 오기 위해 기본적으로 REST API 기반의 통신을 하고 있는데, 이것 말고 실시간 통신에 대해서 말이다. 이제까지 개발이라고 한다면, 아래와 같은 것들을 주로 학습했다.앱 개발과 관련된 기술들: Frameworks, UI Frameworks, Design Patterns, WWDC프로젝트에 관련된 기술들: Development Methodology, Soft Skills기타: AI, Development Tools, 일반적인 CS 지식들사실 이것만으로도 배울게 천지고, 현재 개발 상황에서 필요성을 못 느끼기도 했다. 그럼 갑자기 실시간 통신을 배우는 이유는 무엇인가. 많은 이유가 있지만, 한 단어로 표현 가능하..
Subjects in Combine Subject는 send(_:) 메서드 정의가 있어 특별한 값을 파이프라인으로 보낼 수 있다.Subject는 기존 명령형 코드를 컴바인으로 변환할 때 특히 유용하다.컴바인에는 두 종류의 내장 Subject가 있다. PassthroughSubject와 CurrenValueSubject다. CurrentValueSubject는 가장 최근에 게시된 요소를 기억하는 반면, PassthroughSubject는 지나간 값을 추적하지 않는다는 큰 차이점이 있다.PassthroughSubjectvar cancellables: [AnyCancellable] = []let passthroughSubject = PassthroughSubject()passthroughSubject .sink { print("from p..
Opaque and Boxed Protocol Types 첫 번째, 목적.두 가지 타입의 핵심은 타입을 숨기는 것이다. 우리가 보는 것은 public interface일 뿐, 그 내부 구조는 궁금하지 않다. 궁금하다면 함수의 Signature나 설계가 잘못되었는지 의심해야 한다. 두 번째, Opaque Type공식 문서에서는 Opaque Type과 Generic을 비교한다.An opaque type lets the function implementation pick the type for the value it returns in a way that’s abstracted away from the code that calls the function. Generic은 호출부에 의해 타입이 결정되고, Opaque Type은 구현부에 의해 타입이 결정된다.두 개는 ..
Terminal로 GitHub PR 페이지 바로 열기 요즘에는 git이 버전 관리 툴로는 표준이 된 것 같다. 그리고 원격 저장소도 GitHub으로 거의 표준이 되어가고 있는 것 같다. Contributor들과 협업을 할 때면, 현재 Approve는 얼마나 났는지 확인하거나, 지난 댓글들을 확인하기 위해 PR 페이지를 자주 열게 된다. 그런데 이럴 때마다, Repository에 들어가서, 원하는 PR을 선택하는 것이 상당히 귀찮게 느껴져 이번 포스팅을 쓰게 되었다. 결론적으로는, 제목과 같이 "Terminal로 GitHub PR 페이지 바로 열기"이다. 여러 명령어들을 조합해서 할 수 있었다. 이 번 작업을 하면서 Terminal의 가능성을 깨우치게 되어 좋았다. 지금 내가 쓰고 있는 툴이 제공하는 편리한 기능들을 Terminal 명령어로 실행시킬 수 있다..
iOS 앱 개발자로 취업하기 3 지난 포스팅(https://taeminator1.tistory.com/76)이 21년 12월 21일에 작성되었으니, 벌써 한 달이라는 시간이 지났다. 그간 많은 일들이 있었다. 이전 직장에서의 퇴직과 새로운 직장으로의 이직을 성공적으로 끝냈다. 그 과정 속에서 인수인계, 이사, 연말 정산, 퇴직금 등 정말 많은 일들이 일어났지만, 오늘은 새로운 직장에 대한 인상을 중점적으로 말해보려고 한다. 입사 한지 3주 정도의 시간이 지난 지금의 나의 심정을 한 마디로 표현하자면, "꿈같은 현실"이다(물론 좋은 의미에서). 좋은 장비, 배울 점이 많은 동료들 등등... 그중에서도 전 직장 같았으면 퇴근하고 배웠을 지식들을, 일하면서 얻을 수 있는 것에 대한 매력은 더할 나위 없이 좋았다. 아직도 내가 동경하던 세계에..