새로 올라온 글 보러가기!
-
[Combine] Combine Operator 완전 정복하기 (3) - Filtering Operators
오늘 글은 세 번째 Combine Operator인 Filtering Operators에 대해 알아보고자 합니다!Filtering Operator는 Upstream Publisher가 방출하는 값을 필터링해, 필요한 데이터만 처리할 수 있도록 돕는 연산자입니다.한 개 이상의 Publisher 값들을 서로 연결했던 Combining Operator, Publisher의 값을 변형했던 Transforming Operator에 이어서 세 번째로 Publisher의 값을 걸러주는 연산자는 어떤 것들이 있는지 차근차근 알아보도록 하죠. Filter, TryFilter✔️ filter : 조건을 만족하는 값만 Publish함.✔️ tryFilter : filter와 유사. 단, 조건을 평가하는 과정에서 에러를 Pu..
-
[Combine] Combine Operator 완전 정복하기 (2) - Transforming Operators
[Combine] Combine Operator 완전 정복하기 - Combining Operators예전 아래 제 글에서 Operator의 개념과 종류들을 소개한 적이 있습니다.그런데 단순히 글과 표로만 정리해서 읽고 넘어가기에는, Combine을 사용하면서 충분히 Operator를 적재적소에 사용하기가 어mini-min-dev.tistory.com예전에 살펴봤던 Combining Operator에 이어서, 오늘은 Combine의 Transforming Operator에 대해 살펴보고자 합니다!*Combine 스터디를 할 때 역할을 나누어서 살펴보다보니, 저의 글로 다시 정리하는게 시간이 걸렸다는 점... 양해 부탁드립니다.Transforming이라는 이름에 맞게, 무엇인가 어떤 것을 "변형"하는 느낌의..
-
[Apple Developer Academy @ POSTECH] #2 - Prelude, 긴 여정을 시작하기 위한
🍎 Apple Developer Academy @ POSTECH 4기 : Prelude 회고 (2025.03.10 - 03.14)드디어 포항에 내려왔습니다.4기에 합격하고 아카데미가 시작하기까지 기다릴 때는 그렇게 가지 않던 시간이,막상 포항에 내려오니까 정말 빠른 속도로 흘러가기 시작한 것 같습니다. Prelude 5일이 벌써 어떻게 지나갔나 싶을 정도로 빠르게 흘러가고 있는 이곳 포항에서, 이 감동이 잊혀지기 전에 Prelude를 돌아보는 두 번째 회고글을 시작해보도록 하겠습니다!👇🏻Apple Developer Academy @ POSTECH 지원과 합격 후기는 아래 지난 1탄 글을 확인해주세요👇🏻 [Apple Developer Academy @ POSTECH] #1 - 4기 하반기 지원/합..
-
[WWDC] Apple 머신러닝을 공부하기 위한 세션 모음 (feat. Explore machine learning on Apple platforms)
안녕하세요!오늘은 WWDC24의 Explore machine learning on Apple platforms 세션 내용을 바탕으로, Apple 머신러닝을 공부하기 위해 참고할 수 있는 WWDC 세션들을 소개해보고자 합니다.사실 여러분들에게 세션을 추천하면서동시에 여기에 정리해 둔 세션을 보며 3, 4월에는 Apple 머신러닝 공부를 하겠다는 저의 의지이기도 한다는 점... 여기가 기술 블로그이긴 하지만.. 이 글에서는 저의 개인 메모장처럼 편하게 쓰겠다는 점... 미리 양해부탁드립니다 🙇🏻♂️(꾸벅)앗! 그리고 세션에서는 추천해주지 않은 내용도 함께 포함했습니닷! 큰 개요부터 잡고 갑시다!일단 본격적으로 세션 모음집을 정리하기에 앞서, Apple Machine Learning 기술에 대한 큰 개..
블로그 주인장이 추천하는 글 보러가기!
-
[Clean Architecture] OOP의 SOLID 원칙을 Swift의 관점에서 이해하기
0️⃣ OOP(Object-Oriented Programming)와 SOLID 원칙"일단 앱잼 기간 중에 빨리 기능부터 구현하고, 우리 앱잼 끝나면 진짜 리팩토링하자!"단기간에 결과물을 내야하는 솝트 동아리 내의 과제, 합동 세미나, 장기 해커톤 앱잼 같은 곳에서 가장 많이 들었고, 가장 많이 해온 말이다.하지만 해당 기능 개발이 끝나면, 또 다른 기능 개발이 개발자들을 기다리고 있고....또 다른 기능 구현을 우선적으로 하다 보면, 코드 정리나 프로젝트의 구조를 개선하는 일은 후순위가 항상 되기 마련이었다.어쩌면 리팩토링은 평생 동안 목표에 그칠 수밖에 없는 "이룰 수 없는 과제"일지도 모르겠다.그래서 나는 여기서 의문을 하나 가지게 되었다."겉으로 보이지 않는 코드의 퀄리티나 프로그램의 구조를 굳이 ..
-
[Swift] Coordinator & Router & Factory Pattern을 사용한 리팩토링 (1) : 초기 세팅부터 로그인 화면까지
💡 해당 글은 Coordinator Pattern, Router, Factory Method Pattern을 사용한 리팩토링 코드를 설명하는 글입니다!글이 너무 길어져 총 3개로 나누어 글을 올릴 예정이구요, 만약 잘못된 개념이나 개선할 부분, 질문 등이 있다면 댓글로 지적해주시면 빠르게 남겨드리도록 하겠습니다 ^__^1️⃣ Coordinator & Router & Factory Pattern을 사용한 리팩토링 (1) : 초기 세팅부터 로그인 화면까지2️⃣ Coordinator & Router & Factory Pattern을 사용한 리팩토링 (2) :코디네이터로 탭바 만들기3️⃣ Coordinator & Router & Factory Pattern을 사용한 리팩토링 (3) : 앱 전체 흐름 구성, ..
-
[Combine] Combine 진짜 알기 쉽게 정리해서 올려줄게 (1) - Combine 기초 개념 이해하기
⚠️ 이번 글은 Combine Framework가 처음 소개되었던 WWDC19의 두 세션 Introducing Combine과 Combine in Practice의 예제 을 직접 구현하면서 사용된 Combine 개념들에 대해 집중적으로 소개합니다.이 글에서 소개되지 못한 Combine의 다른 여러 개념들은 Apple Developer Documentation-Combine 글을 참조하길 바랍니다.번역 또는 프로젝트의 목적, 그리고 저의 부족한 이해력 때문에 일부 잘못된 내용이 있을 수 있다는 점. 전제하고 읽어주시면 감사하겠습니다 (잘못된 개념 제보 및 질문 댓글로 얼마든지 환영입니다:) ^__^ 1️⃣ Combine이 뭔데? 왜 공부하는 건데? 언제 쓰는 건데?Combine에 대해 공부하기 전에 우리가..
-
[SPM] Swift 라이브러리를 만들어보자 (1) - Package의 개념과 배포 과정 (feat. Creating Swift Packages)
1. Swift Package와 SPM (Swift Pacakge Manager)Swift Package는 Swift에서 모듈식으로 코드를 관리하고 배포할 수 있도록 제공하는 개념입니다. Swift Package는 단순히 이번 글에서 만들고자 하는 라이브러리뿐만 아니라, 프레임워크, 실행가능한 모듈로서 분리, Swift 매크로 등 다양한 코드 묶음을 만들 수 있는데요.이렇게 작은 묶음으로써 코드를 프로젝트 내에 분리하는 이유는 그 무엇보다 "다른 여러 프로젝트에서 재사용되는 코드를 효율적(의존성 관리, 버전 관리 등)으로 활용할 수 있다는 점"이 가장 큽니다.*흔히 사용하던 서버 통신 라이브러리 Alamofire와 Moya, 이미지 캐싱 라이브러리 Kingfisher, AutoLayout을 도와주는 Sn..
블로그에서 가장 인기가 많은 글이에요!
-
[Apple Developer Academy @ POSTECH] #1 - 4기 하반기 지원/합격까지 오게 된 지금까지의 내 생각 모음
블로그에서 기술 글이 아닌, 일상 글로 돌아온 것은 또 오랜만이네요.사실 써야 하는 일상 회고 글이 꽤 있긴 한데... 이제 방학했으니까 하나둘씩 미뤄놨던 글들을 써보고자 함니다..! (벌써 1년 된 토스터 앱잼 회고부터.. 디자인패턴 스터디..컴바인 스터디.. 쿠다 데이터톤.. 플립 등..컨텐츠는 아주 많이 쌓여있으니 만관부...) 아무튼! 제목에서 이미 써있는 것처럼, 저는 (겨우 일주일 남은) 내년 포스텍에서 1년 동안 Apple Developer Academy 4기 러너로 참여하게 되었습니다! 👏🏻👏🏻👏🏻지원하기까지 정말 많은 고민 과정과 생각들, 그리고 준비 과정까지 모든 것들을 한순간 저만의 기억으로만 남기기에 너무 아쉬운 점도 많고 / 공유하고 싶은 내용도 많아서 글을 써보고자 ..
2024.12.25 14:48 -
[Mac] 맥 터미널 기본 사용법을 배워보자
맥북을 사용하는 개발자 중에서 터미널을 사용해보지 않은 개발자가 과연 있을까?터미널(Terminal)은 맥(macOS)에서 지원하는 커맨드 라인 툴(command line tool)이다.개발을 할 때, 기본적인 파일 접근부터 깃(Git) 관리까지 보통 이 터미널에서 명령을 입력하며 진행하는 경우가 많기 때문에 기본적인 터미널 명령어는 어떤 것들이 있는지 알아두어야 할 필요가 있다.그래서 오늘 글에서는 아직 터미널 사용법이 익숙하지 않을 분들을 위해, 내가 자주 사용하는 기준으로 하나씩 명령어를 정리해 보도록 하겠다. (참고로 캡처 화면이 기본 터미널 화면과 다른 이유는, 내 맥북은 다음에 다룰 iTerms2라는 별도의 프로그램을 사용했기 때문이다 ^_^)이 글에서 다루고 있는 명령어 목록이다. 계속 새로..
2022.01.07 17:00 -
[SOPT] #1 - 28기 솝트 지원부터 면접, 합격까지 후기
이.. 것도 3월에 시작한 활동이지만...지난 학기에 너무 바빴던 저이기에.. 5개월이 지난 지금..솝트 후기 활동을 하나 둘 써보려고 합니다..^^최대한 빨리 솝트에서 했던 모든 활동들, 리쿠르팅, 세미나, 운영팀, 행사, 솝커톤, 앱잼, 스터디 회고를 하나 둘 시리즈로 올려보겠습니다..! 개발을 본격적으로 시작한 지 약 3개월.인터넷 강의로 끄적끄적 파이썬 공부만 하던 나는 개발 흥미를 조금씩 잃기 시작한다.늘지 않는 실력과 매일 반복되는 재미없는 에디터 검은색 창,,재미있는 프로그램을 만들지도, 깃 사용방법도, 네트워크도 부족했던 나는 IT 창업 동아리를 찾게 된다.솝트는 IT 벤처 창업 동아리 중에서는 가장 큰 규모와, 긴 역사를 자랑했다.기획, 디자인, 안드로이드, iOS, 웹, 서버 파트로 나..
2021.08.13 13:54 -
[Basis] 내가 보려고 정리하는 개발 용어 사전 (2) - 비즈니스 로직 (Business Logic)
은 블로그에서 시리즈로 연재하고 있는 글이다.정말 오랜만에 이 시리즈 글을 쓰느라 깜빡했을 수도 있지만, 아래에 1탄 글을 첨부해 뒀으니 궁금하신 분은 가서 읽어보시길 ^___^ [Basis] 내가 보려고 정리하는 개발 용어 사전 (1) - 프레임워크(Framework)와 라이브러리(Library)개발 공부를 한 지 2년이 훌쩍 지났다.하지만, 학교에서도 복수전공은 한 학기 수업 정도, 나머지 1년 반 정도의 시간은 군대에서 보내느라.. 아직까지 내 머릿속에는 개발과 관련된 용어들이 명mini-min-dev.tistory.com"비즈니스 로직을 분리하라"아키텍처를 공부하다가 많이 보던 문장이다.혹시 이 문장을 보고 "그래서 비즈니스 로직이 뭔데?" "나는 사업을 하고 있지 않은데 비즈니스가 왜 나오는 거..
2024.07.10 23:48 -
[KakaoSDK] 사업자 번호가 없을 때, 비즈 앱 전환방법을 알아보자
이번에는 짧게 카카오톡 소셜 로그인을 구현할 때, 있었던 한 이슈에 대해서 정리해볼까 한다.(카카오톡 소셜 로그인 정리 글은 아래에👇🏻) [Social Login] 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. Kakmini-min-dev.tistory.com문제는 이랬다.나다 앱은 jwt 토큰 서버통신을 할 때, 카카오 유저의 이메일 값을 필수로 넘겨줘야 했기 때문에 - 사용자로부터 이메일 계정을 동의를 받을 때, 필수로 받아야 했다.하지만, 처음 동의 항목을 수정할 때는 아래에서 보이는 것과 같이 카카오계정 ..
2022.01.29 21:04