전체 글

· SoftSkills
책을 읽다가 P&G의 한 페이지 보고서라는 것을 알게 되었습니다. 말 그대로 한 페이지로 글을 정리해서 작성하는 방법인데요, 간결하고 효과적인 글쓰기는 정말 매력적인 능력이라고 생각합니다. 영어로는 P&G's One Page Memo라고 하는데 예전부터 알려진 유명한 기법이라고 합니다. 특정 형식에 맞게 간결하고 핵심적인 내용들을 서술해서 읽는 이에게 원하는 바를 효과적으로 전달하는 것이 목적입니다. 형식은 다음과 같습니다. - Idea Summary 제안하는 내용과 그 목적, 그로 인해 얻을 수 있는 이득을 짧게 요약합니다. 읽는 이가 이 부분만 보고도 전체 맥락을 파악할 수 있어야 합니다. - Background 이 글을 쓰게 된 배경에 대해 서술합니다. - How It works 제안하는 내용에 대..
· Tech
Swift에는 특정 타입에 대해서 런타임에서 조사할 수 있도록 하는 기능이 있습니다. 이를 Reflection이라고 합니다. Reflection은 특정 타입에 대해 해당 타입이 무엇이고 그 타입이 가지는 프로퍼티들을 알려주기 때문에 디버깅에서 주로 쓰입니다. 공식 문서에서도 디버깅과 리플렉션이 같이 수록되어 있습니다. Debugging and Reflection Fortify your code with runtime checks, and examine your values' runtime representation 그럼 Reflection이 뭔지에 대해 더 알아보도록 하겠습니다. Reflection을 썼을 때의 차이점 먼저 reflection을 사용했을 때 어떤 장점이 있는지 간단하게 살펴보도록 하겠습니..
· Tech
이름에서 유추할 수 있듯이, 데코레이터 패턴은 특정 객체에 추가적인 기능을 덧붙여서 꾸며주는 기능입니다. 데코레이터 패턴을 사용하면 유연하면서 깔끔한 구조로 하나의 추상적인 동작에 대한 구체 기능들을 조합할 수 있습니다. 저는 디자인 패턴들의 정의를 볼 때 다이어그램과 글로 된 정의들을 보면 이해가 잘 안 가는 경우가 많았습니다. 따라서 정의를 보기전에 먼저 예제를 통해서 데코레이터 패턴이 무엇이고 어떤 특징을 가지고 있는지에 대해 알아보겠습니다. 단순 구현하기 특정 기능을 수행하던 중 에러가 발생했을 때 에러를 기록하는 ErrorLogger 객체가 있습니다. 이 객체는 에러가 발생하면 에러를 저장하여 나중에 꺼내서 확인해 볼 수 있도록 하는 역할을 하고 있습니다. class ErrorLogger { f..
· Tech
드디어 스위프트에도 매크로가 등장했습니다. 저는 평소에도 안드로이드나 서버에서 쓰고 있는 어노테이션들을 보면서 스위프트에도 있었으면 좋겠다고 생각을 많이 했었는데요, 매크로를 구현해 보면서 알게 된 것들을 정리해 보겠습니다. 매크로 시작하기 매크로의 종류와 어떻게 만드는지는 WWDC 영상과 몇몇 예시들만 참조하면 익히실 수 있습니다. 저는 처음에 예시만 보고 바로 하려니까 매크로의 종류나 과정이 잘 이해가 안 돼서 힘들었던 경험이 있어서 시작하시기 전에 아래 WWDC 영상은 보는 것을 추천드립니다. https://developer.apple.com/videos/play/wwdc2023/10167 Expand on Swift macros - WWDC23 - Videos - Apple Developer Di..
· Conferences
Deep Dive into the unknown 이라는 말에 이끌려 레츠스위프트에 갔다 왔습니다. 현장은 사진보다 더 북적북적 했습니다. 취업 준비를 위해 iOS를 공부하던 시절부터 영상으로 레츠스위프트 영상을 많이 봤었는데 직접 참가해 보니 뭔가 시간이 많이 지난 시절을 추억하는 느낌이네요(실제로는 별로 안지났..) 이번에 처음 알았는데 레츠스위프트 앱이 있었습니다. 스위프트 컨퍼런스답게 직접 스위프트로 만들고 계속해서 업그레이드 해나가고 계셨습니다. 앱에 컨퍼런스 정보, 나만의 카드 꾸미기, 카메라 필터 등 정말 많은 기능들이 있더라고요. 소스코드도 공개하고 있습니다. 👍 세션 역시나 이번에도 좋은 주제들이 많았습니다. 세션이 끝나고 여러 키워드들을 찾아보게 만들더군요. 세션룸이 두 개였는데 둘 다 ..
· Conferences
늦었지만 KWDC23 후기를 작성해 봅니다. 지금 보니 사진을 많이 안 찍었네요...😢 역대 최대 규모 코엑스 행사장에서 진행된 KWDC23은 국내 역대 최대의 iOS 컨퍼런스답게 엄청나게 많은 인파를 자랑했습니다. 어딜 가도 사람이 꽉 차있고 줄 서는 경우가 빈번했습니다. 특히 처음 입장할 때와 마지막에 티셔츠 받을 때 줄이 구렁이 접어놓은 것 마냥 길게 이어져있더라고요. 많은 사람들이 온 만큼 다양한 콘텐츠도 준비되어 있었습니다. 세션도 여러 개가 있었고 네트워킹룸과 거기에 마련된 맥 박물관, 그리고 다양한 기업들의 부스들이 있었습니다. 세션 듣기도 바쁜데 어찌어찌 다 돌아본 것 같네요. 세션 세션은 다양한 주제들이 있었고 대부분 공통적으로 WWDC23에 맞게 얼라인 된 것 같았습니다. 기억나는 것들..
· Tech
최근에 서버 코드를 볼일이 생겼습니다. 서버에서는 코틀린 언어를 사용하고 있고 가뜩이나 로직을 파악하기 어려운데 생소한 문법들이 튀어나와 저의 눈을 더 어지럽게 만들더군요. 그때그때 궁금한 것들을 찾아보다가 안드로이드 동료분의 추천을 받아 Kotlin in Action 이라는 책을 읽으면서 자주 쓰이는 문법에서 Swift와 어떤 점이 다른지에 대해서 정리해 보았습니다. extension 우리가 즐겨 사용하는 extension은 코틀린에도 있습니다. 하지만 눈에 정말 안 들어 오더군요. // swift extension String { func hello() { print("Hello!") } } // kotlin fun String.hello() { println("Hello!") } 코틀린에서는 fun..
· Tech
앱의 구조가 복잡해지고 깊어질 수록 pure DI로 디펜던시들을 주입해주기 위해서 많은 노력들이 들어갑니다. Composition Root에서부터 필요한 부분까지 디펜던시들을 전달하기 위해 중간에서도 디펜던시를 관리해주어야 하기 때문이죠. 이를 해결하기 위해 pointfree에서는 DI Container 역할을 하는 라이브러리를 만들었습니다. 원래는 ReducerProtocol과 함께 제공되던 Dependencies 라이브러리가 TCA를 사용하지 않아도 사용할 수 있도록 별도의 라이브러리로 분리되면서( 이미 분리된지 시간이 좀 지났습니다 ) DI library로 swift dependencies를 도입할 지 고민인 분들을 위해 이 라이브러리의 간략한 소개와 이를 사용하면서 느낀 점들을 정리해보고자 합니다..
JAEYOUNGYUN
JAEYOUNGYUN