지난 시간에는 커스텀 환경에서 번역을 제공하는 방법에 대해 알아보기 전, TranslationSession의 간략한 개요와 커스텀 환경에서 번역을 제공하기 위한 준비를 하는 방법을 알아보았습니다.이번, 마지막 3부에서는 지난 시간에 알아본 TranslationSession을 이용해 커스텀 환경에서 번역을 제공하는 방법에 대해 알아보겠습니다. 커스텀 번역 환경의 구성번역할 문자열을 메서드로 보내기만 하면 알아서 화면에 보여줬던 시스템 내장 UI 환경과 다르게 커스텀 환경에서의 번역은 요청과 응답으로 이루어져, 문자열을 이용해 요청을 만들고 이를 메서드를 이용해 번역하고, 메서드에서 반환받은 응답을 직접 처리해야 합니다. 커스텀 번역 요청커스텀 환경에서의 번역 요청은 직접 String을 요청하는 방법과 Re..
지난 시간에는 iOS 앱에서 네트워크 상의 텍스트를 번역하는 방법 중 하나인 Translation의 개요와 시스템 내장 UI 환경에서 번역을 제공하는 방법을 알아봤습니다.Translation은 시스템 내장 UI뿐만 아니라 커스텀 환경에서 번역을 지원하는 방법 또한 제공하고 있는데, 이번 시간부터는 커스텀 환경에서 번역을 제공하는 방법을 알아보겠습니다. 특히, 이번 2부에서는 커스텀 환경에서 번역을 제공하기 위한 방법인 TranslationSession의 개요와 커스텀 환경에서 번역을 제공하기 위한 준비, 그리고 Translation에서 지원하는 언어 및 상태에 대해 알아보겠습니다. TranslationSessioniOS 기본 앱 중에는 iMessage, Safari 등 이미 시스템 UI를 사용하여 번역을..
새해가 시작되고 첫 주가 지나가고 있습니다.새해를 맞이하며 작년 한 해를 되돌아 보고, 또 올해는 어떤 한 해를 보낼지 계획을 세우는 시간을 가져보려 합니다. 2024년 회고작년 초, 신년을 맞이하며 조그맣게 세웠던 계획이 있는데, 대표적으로 다음과 같습니다.코딩 테스트 매일 최소 1문제 풀기iOS에서 다양한 기술 공부하기공부한 내용 개인 프로젝트에 적용해 보기글또 활동 지속하기양질의 글 작성하기글또 개발자 직접 만나보기취업하기 2023년에 세웠던 계획과 크게 다르지 않으면서도 오히려 계획이 조금 축소된 편이었는데, 그 이유는 현실적인 목표를 잡기 위해서였습니다.2023년에 많은 계획을 세우면서 모든 계획을 달성하려고 이것저것 발을 걸치다 보니 오히려 하나에 집중되지 못해서 많은 것을 한 것에 비해 만족..
제 블로그에는 iOS 다국어 지원에 대한 글이 2개 있습니다. 하나는 2022년에 작성했던 예전 방식인 Strings File을 사용한 방식에 대한 글이고, 또 하나는 올해 3월에 작성한 String Catalog를 사용한 방식입니다. 글을 작성한 이후 개인적으로 다국어 지원에 대한 질문을 여러 경로로 받았습니다.특히 String Catalog를 사용한 방식인 [iOS] String Catalog - Xcode 15 이후의 iOS 앱에서 다국어 지원하기 (feat. Localization) 작성 이후 앱의 로컬 텍스트가 아닌 네트워크에서 받아온 텍스트를 다국어 지원하는 방법이 있는지에 관한 질문을 몇 번 받았었는데, 당시 제가 알고 있던 지식 수준에서는 iOS로 네트워크 텍스트까지 다국어 지원하는 방법을..
프로그래밍을 하다보면 다양한 소프트웨어 디자인 패턴을 접하게 됩니다. 소프트웨어 디자인 패턴은 프로그램 개발에서 자주 발생하는 문제를 해결하기 위한 방법의 하나로, 1995년 GoF라 불리는 4명의 유명한 개발자가 구체화한 GoF 디자인 패턴이 가장 많이 사용되고 있습니다. Apple에서는 디자인 패턴을 Cocoa 환경에서 사용하기 위한 Cocoa Design Patterns을 제시하고 있는데, 이번에는 이 중 GoF 디자인 패턴에서도 많이 사용되는 Singleton(이하 '싱글톤')에 대해 알아보겠습니다. Singleton(싱글톤)이란?싱글톤은 GoF 디자인 패턴 중 생성(Creational) 디자인 패턴에 해당하는 디자인 패턴으로, 프로그램이 시작될 때 객체의 인스턴스를 처음 한 번만 생성하여 사용하..
그동안 많은 프로젝트를 하면서 여러 뷰를 하나의 뷰로 감쌀 때 UIView를 사용해 왔는데요.뷰를 감싸기 위한 UIStackView가 있는 것을 알면서도 더 자유롭게 뷰를 배치하기 위해 사용하지 않았습니다.또, UIStackView를 사용하면서 여러 제약 조건에 충돌이 생기기도 했고, 이러한 충돌을 어떻게 해결해야 할 지 감이 오지 않아서 빠르게 프로젝트를 진행해야 한다는 핑계로 UIStackView의 사용을 더 피하기도 했습니다. 그러던 중 최근 새로운 프로젝트를 하면서 뷰 간의 일관된 간격을 위해 UIStackView를 사용하게 됐는데요.이번 시간에는 UIStackView를 사용하면서 공부한 내용을 기록하려 합니다. UIStackView@MainActorclass UIStackView: UIView우..
다시 한번 글또를 시작하며이번에도 역시 글또를 다시 시작했습니다."글또"는 "글 쓰는 또라이가 세상을 바꾼다"라는 다소 거친 언행이 들어가 있지만 재미있고, 약간은 파격적인 센스를 가졌으며, 동시에 꽤 흥미로운, 그리고 이제는 어느새 정겨워진 이름의 글쓰는 개발자 모임으로, 7기에 처음 합류하여 8기와 9기를 거쳐 마지막 10기까지 참여하게 되었습니다. 기수로는 4기수째, 기간으로는 2년 반 정도 글또와 함께하고 있는데, 어느새 마지막이라니 조금은 아쉽네요. 4기수 동안의 글또 활동을 돌아보자면 글또에 처음 참여했던 7기 때는 초반에 정말 열심히 참여했던 기억이 납니다.7기를 시작하던 당시는 Apple Developer Academy @ POSTECH 1기 활동을 시작한 지 한 달이 조금 지난 시점이었는..
또 한 번의 글또 활동이 끝났습니다.작년 11월 말부터 시작하여 5개월 조금 넘는 시간 동안 글또 9기 활동을 하면서 어떻게 보냈는지 회고하는 시간을 가지려고 합니다. 글또?글또는 "글 쓰는 개발자가 세상을 바꾼다"라는 꽤 흥미롭고 어쩌면 낭만적일 수도 있는 이름을 가진 개발자 글쓰기 모임으로, 7기에 처음 합류하여 지난 8기와 이번 9기에도 참여했습니다. 글또 7기 활동이 2022년 4월에 시작했으니, 어느새 글또와 함께한 지도 2년, 햇수로는 3년이 되었네요. 글또 9기에 참여하게 된 이유 회고글또의 매 기수를 시작하거나 마칠 때 참여한 이유를 다시 한번 생각해 보곤 하는데, 이번 9기에 참여하게 되었던 이유는 크게 4가지였습니다. 반강제적인 글쓰기글또는 시작할 때 예치금을 넣고 시작하는데, 글을 쓰..
앱을 개발하다 보면 서버가 필요하지 않은 앱을 만들 수도 있지만, 서버가 필요한 경우가 꽤 많습니다.저는 그동안 서버가 필요할 때마다 node.js와 express를 이용해 딱 필요한 만큼만 빠르게 서버를 구현해서 사용해 왔는데요. 꼭 필요한 건 아니지만, Spring을 사용해 보고 싶다는 생각을 계속 해왔습니다. 그래서 잠깐 책을 사서 공부하려고 시도했던 적도 있었지만, iOS 공부에도 바빴던 지라 잠시 뒤로 미뤄뒀었습니다. 그러던 중 이번에 마침 글또와 Udemy에서 강의를 수강할 수 있는 쿠폰을 지원해 주셔서 좋은 기회로 Spring Boot 3 & Spring Framework 6 마스터하기! 라는 외국 강의의 한국어 자막 강의를 수강할 수 있었습니다. 강의 소개Spring Boot 3 & Spr..
저는 글 쓰는 개발자 모임 글또에 2022년 7기부터 시작해서 현재 9기까지 참여하고 있는데요. 개발 블로그를 운영하고 싶지만, 특별한 동기가 없다면 꾸준하게 글을 쓰지 않을 것 같다는 생각에 "일단 저질러 보자"라는 생각으로 7기에 처음 글또에 참여했던 기억이 납니다. 글또 이전에도 개발 블로그 운영을 몇 번 시도해 봤었지만, 어떤 글을 써야 할지, 또 어떻게 글을 써야 할지 등에 대한 고민으로 금방 포기 했었는데요. 그 이유는 글쓰기 자체의 어려움도 한몫했지만, 평소에 흔히 접할 수 있는 문학도 아닌 기술에 대한 글을 쓰는 것이었기 때문입니다. 사실 글또에 3기수째 참여하고 있는 지금도 기술 글 작성은 매우 어려운 일인데요. 마침 글또와 Udemy에서 몇 가지 강의를 수강할 수 있는 쿠폰을 지원해 주..