분류 전체보기
[한배:국악 매트로놈] 클린아키텍처 첫 도입기
처음 Swift 개발을 시작했을 때는 문법을 배우고 앱을 개발하는 프로세스에 집중을 하게 된다. 지금까지 나는 이러한 상황 속에 있었고, 주변에 있는 경험많은 개발자들이 아키텍처의 필요성에 대한 이야기를 할 때 아직 내가 도달하기엔 어려운 이야기라고 생각했다. 그리고 드디어 이제는 아키텍처를 도입해도 될 때라는 생각이 들어 마지막 프로젝트에서 클린아키텍처를 적용해보는 과정을 기록해보려고 한다.1. 시스템 아키텍처란?시스템 아키텍처는 시스템의 구조를 정의하고 구성 요소 간의 관계를 설계하는 방법을 말합니다. 아키텍처라는 용어를 여기저기서 참 많이 들어보는 것 같은데 대략적인 느낌만 있고, 그 실체를 설명하라고 하면 항상 어렵다고 느끼는 경우가 있을 것이다. 위에서 설명하는 정의가 어렵게 느껴지지만 아키텍..
[MC3] 내 기준 가장 이상적인 팀플레이
이번 프로젝트는 기존에 인사만 나눠봤지 직접적으로 대화를 해보지 러너들과 함께 5인의 팀을 결성하게 되었다. 우리팀은 디자인 3명, 개발자 2명으로 구성되었고 따로 리더나 서기를 맡고자 하는 사람이 없는 상황이다. 이런 상황에서 내가 어필했던 규칙은 5명이 페어로 매일 번갈아가면서 (사회자, 기록자)의 역할을 맡는 것이였다. 나를 제외한 모든 팀원이 따로 사회자와 기록자를 지정해본 경험도 없었고, 기록자체를 꾸준히 진행한 경험도 없었다. 따라서 다른 팀원들에게는 새로운 테스크가 추가된다는 것이 부담스러웠을 수도 있는 상황이였다. 내가 생각한 사회자의 역할은 준비를 많이 해야하고, 누군가 정해진 업무로 맡아야 하는 것이 아니라 사회자의 역할이 명확하게 필요한 상황에서의 개입이였다. 각자 자유롭게 의견을 ..
[Bridge3] 나의 1순위 내재적 동기를 찾아서
매크로 챌린지의 팀 구성 방식이 공개되었다. 매크로는 지금까지 자율적으로 팀을 구성하도록 진행해왔고, 이번에도 마찬가지였다. 알럽나이들의 이야기를 들어보면 이맘때쯤 뒤에서 서로 나중을 기약하는 이야기들을 나눈다고 했다. 무조건 어벤저스로 불리우는 사람들과 같은 팀을 하고 싶은 생각은 없었다. 최근 그 생각이 더 강해졌다. 기술이 뛰어난 팀원이지만 나랑 열정의 정도가 다를 수 있다. 나랑 주제에 대한 관심도는 다르지만 협업과 소통의 방식에서 잘 맞을 수도 있을 것이다. 함께 팀원을 해본 사람에 대해서는 조금 더 알 수 있겠지만, 우리와 또 함께할 다른 팀원들 사이에서의 시너지가 어떻게 나올지는 또 모르는 일이다. 나는 예언자가 아닌 평범한 인간으로 내가 선택한 팀원들과의 3개월이 어떤 방식으로 진행될지, ..
[백준-2583] 영역 구하기 #DFS #BFS
1. 백준-2583 영역 구하기https://www.acmicpc.net/problem/2583 2. 알고리즘 카테고리 : DFS, BFS3. 나의 풀이 알고리즘(1차) : DFS- 알고리즘을 보면서 리트코드의 섬찾기와 동일한 문제라고 생각이 들었다. 따라서 0인 공간을 따라서 상하좌우를 탐색하는 재귀 형식으로 문제를 풀이하였으나 "런타임 에러 (RecursionError)"를 보게 되었다. https://leetcode.com/problems/number-of-islands/- Recursion Error는 Recursion이 시스템 설정 이상으로 깊게 들어가서 발생하는 오류로 임시적인 해결 방법으로는 sys.set recursion limit을 이용하여 한계치를 임의로 올려주는 방법이 있다. 하지만 ..
[NC2] 애플 생태계에서 수영해보기
NC2를 진행하기에 앞서 애플 생태계를 알아가는 과정이 매우 흥미로웠다. 200명이 50개의 Apple에서 제공하는 프레임워크와 기술들을 알아보았고 나누는 시간이 있었는데, 이렇게나 다양한 기술을 제공하고 있다는 것에 놀랐고 개발의 범위가 엄청나게 다양할 수 있다는 것을 알게 되었다. 그리고 생각보다 UIKit기반으로 만들어진 기술들이 많다보니 UIKit에 대한 공부 없이는 더 발전할 수 없을 것 같다고 생각하게 되었다. UIKit을 꼭 하자!보다는 해당 프레임워크가 어떻게 동작하는지, 어떤 특성이 있는지를 공부해보면 기술을 응용하는데 좋을 것 같다고 생각했다. 내가 하고싶었던 1,2순위 기술은 아니였지만 러너들이 작성해준 기술 설명을 읽다가 나름 흥미로워보여 선택한 3순위 RoomPlan이 배정되었다..
[백준-11279,1927] 최대힙, 최소힙 #힙
1. 백준-11279 최대힙, 1927 최소힙https://www.acmicpc.net/problem/11279https://www.acmicpc.net/problem/19272. 알고리즘 카테고리 : 힙3. 나의 풀이 알고리즘(1차) : 힙import heapqmax_heap = []input_count = int(input())for _ in range(input_count): i = int(input()) if i == 0: if len(max_heap) == 0: print(int(i)) else: print(-heapq.heappop(max_heap)) else: heapq.heappush(max_hea..
[오류] SwiftData - Accessing Environment<ModelContext>'s value outside of being installed on a View. This will always read the default value and will not update. & View outside에 위치한 @Query를 사용하여 데이터 불러오기 실패
1. 내용 캡쳐- 프로젝트를 진행하면서 SwiftData를 사용하게 되었는데, 삽입된 데이터 값들을 여러 뷰에서 사용해야 했고 각각의 뷰에서 @Query를 실행해서 데이터를 불러오는 것이 아닌, 데이터를 관리하는 하나의 싱글톤 객체가 있으면 어떨까?라고 생각해보았다. ObservableObject로 선언된 Class를 생성하고 클래스 내부에서 @Query를 사용해서 SwiftData에 저장된 데이터를 가져오고, @Published로 선언된 객체를 사용해서 데이터를 관리하고자 하였다. 하지만 @Query를 사용해서 데이터를 불러온 결과값이 들어오지 않는다는 것을 알게 되었다. 2. 원인 분석- 불가능한 이유를 알아보고자 찾아봤지만, 같은 방식을 사용하거나 공식 문서에서 명확한 답을 얻을 수 없어 Apple..
[MC2] 유저 파악하기 실패의 기록
이번 프로젝트의 목표는 '사용자를 이해하기'였다. 마지막날 팀 회고를 진행하면서 우리팅이 사용자를 제대로 파악했는지의 질문에 모든 팀원들이 NO라는 답변을 했다. 비대면 인터뷰와 채팅을 통한 소통을 하는 약 2주간의 대화속에서 우리는 사용자에 대해서 정확하 파악했다고 생각했다. 하지만 생각보다 사용자는 있는 그대로 이야기하기보다 상황에 맞춰 말을 다르게 전달한다는 것을 알게 되었고, 이와 더불어 인터뷰를 하는 우리도 모든 키워드들을 같은 중요도로 보지 않고, 이전에 우리 내에서도 이야기가 나왔거나 관심이 있는 범위에 속해있다면 해당 부분들을 스포트라이팅하면서 다른 것들을 보지 않으려고 했을지도 모르겠다는 생각이 든다. * 이번 프로젝트는 1명의 사용자를 대상으로 서비스를 기획하는 프로젝트로, 일반적인 기..