전체 글
-
미라클 모닝 후기잡담 2024. 6. 2. 14:00
최근 미라클 모닝을 실천하고 있습니다.아래 게시글에서 매우 일찍 출근하기를 언급한 적이 있습니다.2024.05.12 - [잡담] - 탑다운 회사에서 개발자로 잘 자라기 탑다운 회사에서 개발자로 잘 자라기개요시드 단계(+ 시리즈 A)의 스타트업에서 재직을 했을 때는 정말 빠르게 움직였습니다.소수의 인원으로 행동하다보니 많은 역할을 담당하였습니다.이때 배운 것은 매우 소중했습니다. 그러나hogumachu.tistory.com 미라클 모닝에 대한 저의 생각은 다음과 같습니다. 장점이동 시간이 줄어든다지하철만 이용한다면 관계는 없겠지만 버스를 이용하는 입장에서 확실히 차가 막히지 않습니다.보통 새벽에 버스를 타면 1시간 20분 정도 걸립니다.일반적인 출근을 하게 되면 최소 2시간이 걸립니다.사실상 40분 이상을..
-
탑다운 회사에서 개발자로 잘 자라기잡담 2024. 5. 12. 10:48
개요시드 단계(+ 시리즈 A)의 스타트업에서 재직을 했을 때는 정말 빠르게 움직였습니다.소수의 인원으로 행동하다보니 많은 역할을 담당하였습니다.이때 배운 것은 매우 소중했습니다. 그러나 최근 이에 비해 많이 경직된(부정적인 것이 아닌, 탑다운 의사결정) 회사에 입사하게 되었습니다.어떻게 잘 성장할 지에 대한 생각을 나열한 글입니다. Case 1. 회사의 업무는 경직되지 않았을 때제 생각에 가장 최고의 케이스라고 생각합니다.자신이 하고 싶은 일, 추가하고 싶은 기능 등 여러 요소를 비교적 편안하게 선택할 수 있습니다. 만약 프로젝트를 처음 시작할 때 React, Vue 등 어떤 것을 사용할지 선택하게 됩니다.그리고 선택을 하기 전에 각 선택지에 따른 장단점과 선택하며 얻는 것을 작성하기를 바랍니다.ADR(..
-
[iOS] SwiftUI, TCA 모듈화 그리고 RIBs스위프트 2024. 5. 5. 00:34
개요최근에 SwiftUI와 TCA 조합으로 개인 프로젝트를 진행하고 있습니다.사내 새로운 서비스도 TCA를 사용할 것 같은데 아마 설계까지 해야 할 것 같습니다.그런데 TCA로 제대로된 모듈화가 너무 어렵더라고요..이에 대한 트러블 슈팅과 생각 정리를 좀 해봤습니다. 🚨 TCA에 대해 깊게 알고 작성한 글이 아니므로 잘 걸러서 들어주세요! 🚨다른 좋은 방법이 있다면 말씀해 주시면 조언 부탁드리겠습니다. 🙇🏻🙇🏻♂️🙇🏻🙇🏻♂️ SwiftUI, 모듈화가 어려운 이유SwiftUI의 장점은 너무 많습니다.일단 선언형이라 직관적이며 UIKit에 비해 적은 코드로 UI를 그릴 수 있고 등등... 아주 많습니다. 그러나 제 생각에는 단점도 꽤나 치명적입니다. 바로 View에서 내비게이션(라우..
-
[OOP] SOLID 원칙 for iOS객체지향프로그래밍 2024. 3. 2. 17:34
개요 학부 시절에 SOLID 원칙에 대해 열심히 암기했던 기억이 있습니다. 예전에 SOLID 원칙에 대해 잘 지키고 있나요?라는 질문을 받았는데 '네'라는 답을 하기가 꽤 어려웠습니다. iOS 앱을 만들며 느꼈던 SOLID 원칙을 잘 지키고 있는 지 함께 알아봅시다. SOLID 원칙이란? 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있습니다. (출처: 위키백과) 결국 핵심적인 부분은 유지 보수와 확장이 쉬운 시스템인 것 같습니다. S: 단일 책임 원칙 Single Responsibility Principle 한 클래스는 하나의 책임만 가져야 한다 해당 원칙은 핵심은 복잡성을 줄..
-
[iOS] ViewController 테스트 작성하기스위프트 2024. 1. 28. 16:40
보통 테스트를 할 때 비즈니스 로직만 테스트를 하고 ViewController(UI)에 대한 테스트 작성은 미흡합니다. 왜 테스트가 미흡했고 어떻게 테스트를 작성할 수 있는지에 대해 알아봅시다. 테스트하기 어려운 이유 - 객체지향프로그래밍 전에 객체지향프로그래밍(OOP)에 대해 글을 작성했습니다. 2023.08.13 - [객체지향프로그래밍] - [OOP] 객체지향프로그래밍 기초 [OOP] 객체지향프로그래밍 기초 OOP의 개념 객체지향 프로그래밍 (Object Oriented Programming)은 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호 hogumachu.tistory.com ViewController를 ..
-
[iOS] 테스트를 작성해야 하는 이유스위프트 2024. 1. 21. 18:43
최근 면접을 보는데 테스트 코드를 작성해야 하는 이유에 대해 질문이 들어왔다. 단순히 내가 작성한 코드가 안전하다는 것을 보장한다는 답을 했다. 그런데 이후에 꼬리 질문이 들어오니 면접관의 질문과 답변에 털리고 왔다. 테스트 코드를 작성하지 않아야 하는 상황? 반대로 생각을 해보기로 했다. 일단 2가지 정도를 생각했는데 유지 보수를 전혀 하지 않을 생각일 때 기억력이 굉장해서 기존 코드를 수정할 때 어디에서 어떤 결과가 나올지 알고 있을 때 2번 케이스는 잘 없을 것 같고.. 생각보다 1번 케이스는 많다. 짧은 기간동안 하는 프로젝트 경우에는 테스트 코드를 작성하는 것보다 빠르게 기능 개발을 우선으로 했다. 스타트업에서 재직할 때는 위 상황과는 달랐다. 기존에 추가한 기능이 유지될 가능성이 굉장히 낮았다..
-
[iOS] 모듈화를 해야 하는 이유스위프트 2024. 1. 14. 16:50
개발을 하면서 왜 모듈화를 해야 하는지에 대한 개인적인 이유입니다. 다른 의견 있으시면 댓글 달아주시면 감사하겠습니다! 🙇🏻♂️🙇🏻 캡슐화 먼저 캡슐화에 대한 이야기를 하려고 합니다. 2023.08.13 - [객체지향프로그래밍] - [OOP] 객체지향프로그래밍 기초 [OOP] 객체지향프로그래밍 기초 OOP의 개념 객체지향 프로그래밍 (Object Oriented Programming)은 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호 hogumachu.tistory.com 캡슐화에 대한 자세한 내용은 위에 링크를 참조해 주세요. 모듈 수준에서도 캡슐화가 진행되어야 한다고 생각합니다. 만약 진행하지 않는다면 외부에..
-
[iOS] ViewController Life Cycle (+ ViewIsAppearing)스위프트 2023. 9. 2. 16:58
Overview ViewController에 새로운 viewIsAppearing(_:) 메소드가 추가되었습니다. 새로워진 ViewController의 생명 주기와 레이아웃은 어떤 방식으로 설정이 되는 지 알아봅시다. ViewController Life Cycle ViewController에도 생명 주기가 있습니다. 메모리에 적재되어 레이아웃을 잡고 사용자에게 시각적으로 보입니다. 그리고 더이상 필요 없다면 사라집니다. init 잘 알고 있는 객체의 init 메소드입니다. 가장 먼저 호출이 됩니다. loadView ViewController가 관리하는 View를 만드는 메소드입니다. View를 로드하거나 생성하여 View Property에 할당합니다. 애플 문서에 따르면 해당 메소드는 직접 호출하지 말라고..