전체 글

전체 글

    [Apple Developer Academy @ POSTECH] Mini Challenge 2 후기

    [Apple Developer Academy @ POSTECH] Mini Challenge 2 후기

    Mini Challenge2가 끝났다. 사실 끝난지 꽤 오래됐지만 회복할 시간이 필요해서 후기를 늦게 작성하게 됐다. 욕심 안부리려고 해도 다 쏟아내버리게 된다. 개인적인 일들 때문에 가장 힘든 시기에 시작되고 끝난 MC2는 약 6주 정도 동안 가장 바쁘게 지나갔고, 가장 생각을 많이 한 챌린지였다. 그리고 처음으로 개발 팀장을 맡아서 했었는데, 나에게 실망을 많이 하기도 한 챌린지였다. 발표 전부터 지금까지 약 2주 동안을 정말 정말 정신적으로 힘들게 보냈던 것 같다. 지금은 다 털어내고 "그래서 다음은 어떻게 할거야?"라고 스스로에게 묻고 있는 중이고 어느 정도 답을 찾아내고 있다. 이와는 별개로 정말 정말 가족같은 팀원들을 만나서 (내가 아빠다) 정말 따뜻한 하루 하루를 보낼 수 있는 챌린지이기도 ..

    [Redux] Redux를 이용한 상태관리 후기 (with SwiftUI)

    [Redux] Redux를 이용한 상태관리 후기 (with SwiftUI)

    애플 개발자 아카데미에서 SwiftUI로 개인 프로젝트를 진행하면서 Redux 아키텍처를 적용해보았습니다. Redux는 전역 상태관리에 중점을 두고 React에서 출발한 아키텍처였기 때문에, 중점적으로 보았던 부분은 크게 세가지였습니다. SwiftUI에서 Redux를 적용했을 때 장단점은 무엇일까? SwiftUI에서 Redux를 제대로 적용할 수 있을까? 어떤 프로젝트에서 어떻게 Redux를 적용하는 것이 좋을까? 이번 프로젝트에서는 비동기 처리와 사이드이펙트에 대해서는 고민할 필요가 없었기 때문에, 미들웨어를 뺀 State, Action, Store, Dispatcher 로 이루어진 Redux의 기본 형태만을 가져와 사용해보았습니다. 아직 Server Response 처리와 같은 Redux의 강력한 기..

    [Apple Developer Academy @ POSTECH] Mini Challenge 1 후기

    [Apple Developer Academy @ POSTECH] Mini Challenge 1 후기

    3월 21일에 시작하여 약 한달동안 진행한 애플 개발자 아카데미의 첫번째 챌린지인 MC1이 끝났다. 처음이기 때문에 많이 부족했지만, 이보다 더 나은 것을 바라는 것은 욕심이라는 생각이 든다. 늘 그랬듯이 나는 힘차게 혹은 정신없이 달리고 난 후 찾아오는 고요함에 취약하다. 감당할 수 있는 이상으로 무기력해지고, 그 무기력함으로 인해 우울해진다. MC1을 마치고 약 3일 정도가 지나는 내내 침대에 딱붙어서 몸에 피가 잘 돌지 않는 느낌이다. 빨리 다음 챌린지가 시작했으면 좋겠지만, 이 기분을 이런 식으로 회피하는 것이 아니라 조금 더 들여다보고 근본적인 해결 방법을 찾아야할 것 같다. MC1을 한마디로 표현하자면 "남을 바라보는 시간은 바빴지만 행복했고, 나를 바라보는 시간은 괴로웠지만 성장했다."이다...

    [Redux] SwiftUI에서 Redux 아키텍처 적용해보기 - 첫인상

    [Redux] SwiftUI에서 Redux 아키텍처 적용해보기 - 첫인상

    아키텍처의 중요성을 일깨워준 Apple Developer Academy @ POSTECH에서 함께 공부하는 Woody에게 감사합니다! 이전에 애플 개발자 아카데미의 첫 챌린지로, SwiftUI로 저의 두번째 프로젝트를 해보았습니다. 이전에 했던 첫번째 프로젝트는 일주일 동안 SiwftUI를 사용해야 음악 플레이어앱을 만드는 것이었고 그 당시에는 정말 쉽지 않았습니다. 기능적인 부분 때문이기도 하지만, SwiftUI라는 새로운 프레임워크를 처음 다루어본다는 측면에서 낯설음 때문이지 않았나 싶습니다. 제가 SwiftUI 첫번째 프로젝트를 마치고 면접장을 가서 받았던 질문은 "MVC를 쓰는 회사에 MVVM을 도입하자고 설득해야 하는 상황이면, 어떻게 설득할것인지" 였습니다. 정말 간단한 질문이라고 생각했지만,..

    [SwiftUI] @escaping에 대해서

    [SwiftUI] @escaping에 대해서

    SwiftUI를 이용해서 코딩을 하다보면, 종종 @escaping 이라는 키워드를 만나게 됩니다. 기본적인 형태는 이렇습니다. func functionWithEscaping(completion: @escaping () -> Void) { completion() } 우리가 흔히 Escaping이라는 단어를 들으면, 어딘가로 탈출하는 모습이 그려지죠? 실제로 Escaping Closure는 해당 로직 밖에서 사용이 가능합니다. 즉, 현재 있는 함수 외부 다른 곳에서 호출이 가능하게 됩니다. 예시를 들어볼까요? 이렇게 () -> Void 형태의 함수를 저장하는 배열이 있다고 할게요. var completionHandlers: [() -> Void] = [] 이 배열에, 원하는 함수를 인자로 받아서 append..

    [SwiftUI] inout은 어떻게 작동하는가 (C언어의 Call by Reference와 비교)

    [SwiftUI] inout은 어떻게 작동하는가 (C언어의 Call by Reference와 비교)

    Generics 함수를 공부하던 중, inout이 어떻게 작동하는지 궁금해져서 한번 주솟값들을 찍어봤습니다. swift에서 inout은 C언어의 Call by Reference와 똑같이 작동할까요? 먼저 C언어에서 Call by Reference를 살펴볼게요 #include void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int main(void) { int a = 42; int b = 21; swap(&a, &b); } C에서는 pointer를 사용하여, 주솟값을 함수로 넘겨줍니다. 그리고 이 주솟값 안의 변수를 복사하고 수정하는 등의 작업을 손쉽게 처리할 수 있습니다. 이렇게 실제로 주솟값을 보내서 해당 주솟값이 가리키는 ..

    [SwiftUI] Generics 타입 제약 (Type Constraints) 다루기

    [SwiftUI] Generics 타입 제약 (Type Constraints) 다루기

    Generics 함수의 타입매개변수에는 특별한 제약을 걸어주지 않으면 어떤 타입도 들어올 수 있습니다ㅎㅎ 하지만, 아무 타입이나 들어왔을 때 문제가 생기는 경우가 있습니다. 바로 우리의 함수 내부 로직이 특정 성격을 가지는 타입을 다룰 때인데요! 공식문서의 예시를 들어볼게요! 배열에서 문자열을 찾는 함수입니다. 예를들어 ["aa", "bc", "de", "fgh"] 이런 배열이 있을 때, "bc"를 검색한다면 해당 index값인 1을 반환하고, "a"를 검색하면 일치하는 문자열이 존재하지 않기 때문에 nil을 반환하는 함수이죠! func findStringIndex(array: [String], valueToFind: String) -> Int? { for (index, value) in array.en..

    [SwiftUI] Generics 기초 개념

    [SwiftUI] Generics 기초 개념

    C++의 Template과 비슷한 개념인 Swift의 Generics는 재사용 가능한 함수와 타입의 코드를 작성할 수 있게 해줍니다! 재사용 가능한 함수와 타입?? 예시를 한번 들어볼게요ㅎㅎ 어떤 변수의 값을 교환하는 Swap 함수를 만들면 이렇게나 간단합니다. func swap(a: inout Int, b: inout Int) { let temp = a a = b b = temp } 근데 여기에 3.5와 4.2를 가진 값을 교환하는 Swap 함수를 사용하고 싶으면 어떻게 해야할까요? 이렇게 Double 형을 매개변수로 받는 함수를 새로 만들어줘야 합니다. func swap(a: inout Double, b: inout Double) { let temp = a a = b b = temp } 그렇다면 St..

    내가 사랑하는 요리, 다양한 파스타 맛있게 만드는 법

    내가 사랑하는 요리, 다양한 파스타 맛있게 만드는 법

    파스타에 대한 로망은 어릴 때 레이디와 트램프 만화를 보고 무럭 무럭 피어올랐었다. 어린 마음에 저 장면은 충격적으로 따뜻했다. 외국 사람들은 다 파스타를 먹는 줄 알았는데, 독일 사람들에게 파스타는 가까운 외국음식이었다ㅋㅋ 우리나라 사람들이 스시를 먹기는 하지만, 일본 음식으로 인식하듯이 파스타를 너희 음식이라고 하면 아니라고 펄쩍 뛴다. 이탈리아 음식이라고 한다. 독일에 사는 동안 파스타 재료가 한국과 비교가 안되게 다양하고 저렴해서, 같은 파스타라도 정말 이것저것 많이 도전해봤는데, 꽤 성공한 4개의 파스타들이 맛있을 수 있었던 팁들을 소개해보려고 한다. 이렇게 요리 팁들을 적고 있으니까 이제 정말 아저씨가 되어가는 느낌이다.. 먼저 내가 생각할 때, 모든 파스타의 기본은 알리오에올리오다. 여기서 ..