
오늘도 로직과 싸우다가 거의 질 뻔 했다. forEach 가 날 살렸ㄷr…ㅤ이번에 겪은 문제 상황은 [ 원본 배열을 순회하면서 각 원소의 값에 대해 연산 수행 → 다른 배열에 값을 업데이트 하는 코드 ]를 map으로 처리해주려 하는 상황이였다. 분명 배열에 값이 들어있는데 map 내부 함수가 실행이 되지 않고, 심지어 print 문도 찍히지 않는 매우매우 기묘한 현상이였다. 그런데 map으로 실행이 안되던게 forEach로 넣어버리니 바로 실행이 되어버리는게 아닌가??🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔ㅤ결론부터 짧게 지르고 시작하자면, forEach는 순회를 하는 함수이고, map은 Iterator를 반환하는 함수이다.forEach는 Eager Evaluation을 수행하는 함수이고, map은 ..

기존에 FutureBuilder를 사용해서 파이어베이스에서 불러오는 데이터에 대해 비동기적인 UI를 만들어본 적이 있었다. 근데, 지금 생각해보면 너무 대충 만들고, FutureBuilder가 하는 역할이 뭔지만 찍먹하고 넘어가버렸던 것 같다.ㅤ그때는 요렇게 데이터가 들어오는 중일 때에는 왼쪽처럼 표시하고, 데이터가 들어오고 나면 오른쪽처럼 정상적으로 숫자가 보여지도록 만들었었다. ㅤ요즘에 앱개발이 재미있기도 하고, 여러가지 UX를 고려한 앱을 만들어내고싶다는 욕심이 생기고 있어서 비동기 UI 부분도 조금씩 건드려보려고 하고 있다. 바로 위에 만든 것도 어떻게 보면 비동기를 건드린 것이기는 하지만, 좀 더 미적인 느낌이 필요하지 않나 라고 생각된다. ㅋㅋㅋㅤ현재 내가 진행하고 있는 프로젝트에서는 비동기로..

TCA에 대한 공부를 시작하기 전에 MVVM에 대해 살펴보다가 아래의 아티클을 발견했다.https://medium.com/@esung/mvc-정말제대로알고계신가요-875f1323f6c0 MVC, 정말제대로알고계신가요?저는 꽤 최근까지 MVC라고 하면 모든 개발자가 같은 개념을 떠올린다고 생각했습니다. 애시당초 디자인패턴이나 아키텍처를 배우는 이유가 다른 개발자, 특히 다른 도메인의 개발자들과의 의사medium.com내가 알고있던 애플에서 사용하는 MVC는 사실은 전형적인 MVC와는 다른 구조라는 내용이였다. 또잉…? 이게 무슨 소리야?? 라고 생각하면서 글을 좀 살펴봤는데, 맞는 말을 던지고 있는 것 같았다.ㅤ그래서 요 충격을 받은 기회에, MVC를 간략하게 짚고 넘어가려고 찾아봤고, 이를 간단히 여기에..

이번에 TCA를 공부하려고 자료를 열심히 보고 있었는데, 아카데미 멘토였던 young의 반가운 글이 보였다!https://gist.github.com/unnnyong/439555659aa04bbbf78b2fcae9de7661 swiftui_mvvm.mdGitHub Gist: instantly share code, notes, and snippets.gist.github.com SwiftUI와 MVVM의 궁합이 썩 좋지만은 않다는 일본 글을 영이 번역을 해둔 글이였는데, 요 번역글이 꽤나 임팩트가 있었는지, 여러 블로그에서 위 아티클을 인용해서 요약해두거나, 저마다의 생각을 덧붙여둔 것을 볼 수 있었다. 이때까지 Presentation 계층의 아키텍처에 대해서 나도 특별한 생각없이 왼손에는 MVC, 오른손..

iOS 취업 공고의 자격요건과 우대요건들을 간략하게 정리해봤다! 다른 취준생들의 시간을 아껴주는 포스트가 되기를 바란다 :) 올해 안에 졸업을 하기 위해서는 나는 올해 하반기에 인턴을 진행해야 한다 ㅜㅜ 막상 iOS 인턴을 지원해보려고 하니, 나에게 프로젝트에 대한 경험은 몇 개 있지만 기술력에 있어서는 경쟁력이 있다고 생각이 들지 않았다. 기획이나 디자인 과정에 참여하고 협업을 할 줄은 알지만, 막상 비동기를 활용한 개발을 능숙하게 처리한다거나 Restful api를 활용한 개발을 진행하지는 않았기에 취준에 어려움이 있을 것 같다는 생각이 들었다. iOS 분야는 인턴이나 신입 포지션도 잘 없는데, 몇 없는 좋은 기회들을 날려버리기는 너무 아쉽다는 생각에 남은 기간동안 내가 준비할 수 있는 부분들을 최대..
웹브라우저에 URL을 입력하면 내가 PC의 주소창에다가 www.naver.com 을 입력하면 어떤 경로를 거쳐 네이버 화면이 보여지는가? 웹브라우저에서 URL을 입력하고, 이를 통해 OS가 서버에 접근하기 위해서는 서버의 IP 주소를 알아야 함. 서버 IP 주소를 알기 위해서는 PC 내에 있는 hosts 파일을 찾아본다. mac에 있는 hosts 파일은 대략 이렇게 생겼다. /etc/hosts 경로에서 찾을 수 있는데, 생각보다 웹사이트 주소가 기록된 게 없네..? 당황스러웠다. 그 다음에는 DNS Cache를 찾아본다. 이전에 질의한 IP 주소들을 캐싱해둔 파일에서 찾고자 하는 도메인에 대한 IP 주소를 확인할 수 있다.GPT를 찾아보니 이런 명령어로 쉽게 dns 캐시의 내용을 확인할 수 있다고 했는데..

VSCode로 작업을 하면서 MySQL을 JDBC로 연결해야하는 누군가 (중앙대 데베시 듣는 사람들) 을 위해 남긴다. 아래 영상을 보고 따라하려 했는데, 유튜브 자동 자막도 영어가 아닌 힌디어로 인식을 할 정도로 영어 발음이 영… 이라 깔끔하게 텍스트로 정리하려 했다 😂 혹시 영상자료가 필요하다면 아래 자료를 참고하면 된다! https://www.youtube.com/watch?v=YczqOe6btEA https://www.youtube.com/watch?v=Xrw0m_333OU 설치해야 하는 것들 JDK 설치 https://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS Free Subscribe to Java SE a..

올해가 벌써 1/4이나 지나가버렸다. 아직 하고싶은걸 많이 하지도 못했는데 벌써 꽃이 필 시간이라니… 첫 줄을 작성하는데, 벌써부터 늘 그렇듯 아쉽다는 생각이 드는건 어쩔 수 없는 것 같다. 다사다난했던 지난 3달의 기록을 남겨보려고 한다 😄 24년의 1월 ~ 3월은 꽤나 많은 경험을 하고, 스스로에게도 많은 변화가 있었다. 육체적으로나 정신적으로도 성장을 했다고 느낀다. 애플 아카데미 동문회 운영진 참여 이번에 애플 아카데미 알럼나이 커미티에 참여하게 되었다. 작년 kwdc에 갔을 때 여러 사람들을 만났는데, 처음에 지원할 때 내 포트폴리오를 보고 도움이 많이 되었다는 이야기를 해주면서 내적친밀감이 있어서 말을 걸어주신 분이 몇 분 계셨다. 사실 새로운 사람들과 네트워킹을 하거나 교류하는게 나에게는 되..
이번에 야곰 iOS 리팩토링 강의를 2기로 수강했다! ㅤㅤ 사건의 발단 플러터로 작성한 캡스톤 프로젝트를 리팩토링하면서 여러가지 고민이 있었다. 나름 구조를 고민하면서 코드를 수정하고 있었는데, 실질적으로 적절한 방향으로 계층을 분리하고 책임을 옮기고 있었나? 의존성을 분리하고 구체적인 코드를 빼내면서 모델을 추상화하고 재사용이 가능하도록 코드를 작성하려 노력했는데, 내가 잘하고 있는게 맞나? 한 커밋 한 커밋 리팩토링을 진행은 하고는 있었지만, 확신이 없는 느낌이였다. 쇠똥구리가 열심히 똥을 빚고 굴려도 똥은 똥… 🥲 ㅤㅤ 반 년동안 플러터로 프로젝트를 진행하면서 스위프트가 너무너무 그리웠다. 오버라이딩도 안되는 언어로 함수들을 깔끔하게 정리하는 것도 힘들고, 조악하게 조립해야하는 코드 형태가 너무 찝..

이번에 야곰 리펙토링 강의를 들으면서 Swift의 “프로토콜” 이 다른 언어에 비해 굉장히 특이한 컨셉을 가지고 있다는 걸 알았다. 어떻게 보면 abstract class나 interface를 통해 구현하는 OOP의 개념들이 프로토콜에 담겨있는데, 이게 구조체나 enum 타입에 모두 적용되게 한다는게 꽤나 놀라운 일이라고 생각된다. 구조체는 값 타입이라며!!! enum도 값 타입이라며!!! 내용이 나왔던 김에 강의에서 소개해준 관련된 WWDC 영상들을 보면서 어떤 컨셉으로 설계되었고, 어떻게 동작하는 건지 공부하면서 한 번 정리해보려고 한다. What I Learned 이번에 본 [ WWDC 15 의 Protocol-Oriented Programming in Swift ] 는 이미 많은 사람들이 블로그에..