Roen의 iOS 개발로그

새싹 8-9주차 회고

by Steady On

 

회고 양식

Evaluation: 지난 주 목표 평가

Present: 지금 하고 있는 것들, 그리고 이번 주차를 어떻게 지냈는지에 대해서 하루의 루틴을 기준으로 적기

Problem & Try: 불편하게 느끼는 부분, 개선이 필요하다고 생각되는 부분 그리고 그런 부분들에 대한 해결책

Goal: 다음 주 목표

 

 

Evaluation

지난 주 목표 목표 평가
1. 월-금 오프라인으로 출석하기 - 8주차에는 수요일에 집안 사정으로 인해 집에서 온라인 수강!
- 9주차에는 금요일에 컨디션 관리로 인해 온라인 수강!(자세한 얘기는 아래에서!)
2. 과제 밀리지 않기 - 제출기한 기준으로 보면 한번도 밀린적은 없는것 같다!
3. 그날 배운 내용은 그날 정리하기 - 굿노트로 강의자료 옮겨서 살펴보고 과제 시작하기
- 노션에 수업 내용 꼼꼼하게 필기하고, 샘플 코드 템플릿 만들기

 

Present

8주차

일단, 8주차 회고를 못쓴 이유가 있는데, 그건 바로 Recap 때문이다... 새싹에서는 3~4주차 동안 배운 내용을 토대로 기업의 채용 프로세스처럼 구현과제를 내준다. 보통 목~월, 금~월로 주말껴서 4-5일정도 수행하도록 되어있다... 이번에는 목요일부터 시작한 5일간의 과제였고, 목요일에 과제를 받았을 때부터 정말 하루 평균 4시간 정도 자면서 열심히 구현하려고 애썼다... 그래서 따로 회고 글을 남길 새가 없었다...ㅎ

 

8주차에는 Realm에 대해서 배웠다. CoreData는 써본적이 있는데, 아무래도 CoreData는 Apple Platform 전용이다보니 추후 안드로이드를 지원하게 되거나 협업하는 경우 아무래도 잘 안쓰이는 것 같았다. Realm은 CoreData처럼 로컬 데이터베이스를 지원하고, 서버에 연결해서 연동도 가능한 mongoDB기반의 데이터베이스고, 사용하기에도 꽤 깔끔했던거 같다. 에러처리에서는 좀... 애를 먹긴했는데...

 

Recap 2차 후기 및 반성

과제가 나왔을 때 어떤 뷰는 뭐가 들어가고, Base와 Product는 어떻게 가져갈건지, 클래스, 구조체 등등 많은 부분을 고려하고 들어갔다고 생각했는데, 정작 마음이 급했던 나머지 가장 중요한 메인 기능 부분의 로직을 제대로 생각하지 않고 들어갔고, 그결과 제출 10분 전에 치명적인 버그들을 발견해서 제출도 늦고, 제출한 다음날에도 계속 디버깅을 해야 했다...

개인적으로 로직을 짜거나 구조화를 하거나 하는 부분에서는 그래도 자신이 있다고 생각했는데, 너무 오만하고 자만심 넘치는 태도였다는 걸 절실히 깨달아서 눈물이 찔끔 나기도 했다...그랬다보니 9주차 내내 컨디션 회복도 하지않고 안달나는 마음에 디버깅에 집착하면서 숙면을 취하지 못하고 자면서도 계속 디버깅하고, 스트레스 받아 있었다....결국 탈이나는 바람에 금요일은 온라인 출석 후 집에서 요양을 해야 했지만....

이번 실패로 많은걸 배웠고, 깨달았고, 반성했고, 스스로 채찍질도 진짜 많이 했다... 바쁜 꿀벌은 슬퍼할 겨를이 없다고 그랬다. 나는 아직 갈길이 멀고, 같은 실수를 되풀이하지만 않으면 된다. 주저앉아 있기에는 시간이 계속 간다!

 

9주차

아무튼 위와 같은 이유로 9주차에는 컨디션이 매우 좋지 못했는데, 그럼에도 새로 배우는 내용들은 꽤 재밌었다. localization도 배웠고, 그리고 DiffableDataSource와 CollectionView로 TableView를 만드는 방법도 배웠다. 뭔가 구조체 이름이 너무 길고 헷갈려서 영 정이 안가긴하는데;;;; 주말에 과제하면서 Apple에서 제공하는 Sample Code를 좀 둘러보다보니 header나 footer를 붙이거나 하는데서 기존의 DataSource보다는 또 재밌는 부분들이 있었다.

그리고 사실 9주차에 배운 가장 중요한 부분은 MVVM인 것 같다. 앱스쿨에서 SwiftUI를 배울 때 MVVM이 대충 뭐 Model-View-ViewModel인건 알았는데, 그걸 왜 적용하는지, 그게 뭔지 정확히도 모르고 그냥 팀원들이 취업하려면 해야된다고 해서 적용을 했었다. 근데 이거... 배워보고 적용해보니까 도대체 이걸 왜 스유에 적용하겠다고 야단들이었나 싶었다;;;; SwiftUI는 State나 Observable, Environmental이 다 프로퍼티래퍼로 구현되어 있어서 굳이 view와 양방향 통신을 하겠다고 애를 안써도 되는데 왜 굳이 ViewModel을 만들겠다고 난리였는지...?ㅎㅎ;; 

 

라이브러리의 사용에 대해서...

라이브러리 사용에 대해 생각이 좀 바뀌었다. 원래는 약간 뭐 거의 흥선대원군 마인드로, 어차피 라이브러리가 다 Swift로 구현된건데, 내가 그걸 이해하고 어느정도 구현흉내라도 내볼 수 없는 이상 공부하는 입장에서 갖다 쓰는건 아니지 않나! 하는 생각을 가지고 있었다.

근데 리캡 과제 제출 이후에 멘토님이랑 해당 문제에 대해서 잠깐 이야기를 나눌 수 있는 기회가 있었는데, 그 때 생각이 좀 바뀌었다. "자동차를 만드는데, 타이어부터 만들지 말자"라는 말을 해주셨다. 라이브러리도 진짜 그냥 코드를 조금 쉽게 쓸 수 있게 해주는 게 있고, 단순히 코드를 쉽게 쓰게 해주는것 뿐만 아니라 캐시를 관리해준다던지 등등 개발자가 고려하기에는 너무너무 까다롭고 어려운 것들까지 다 작업이 되어있는 것들이 있다. 요리를 예로 들자면, 세척당근, 깐 양파와 같이 단순하게 쉬운작업이지만 손이 좀 덜가도록 해둔게 있고, 생선의 피를 빼고 손질을 다해서 썰어서 먹기만 하면 되는 필렛같이 전문적인 손길이 필요한 부분은 다 작업해두었으니 개발자 입장에서는 핵심적인 기능! 회를 썰어서 제공한다!만 편하게 해주는 것이랄까... 앱을 개발하면서 모든 것을 다 내가 100% 이해하고 설계하고 구현하기는 쉽지 않으니, 그게 왜 중요한지, 어떤 부분에서 어려운지, 왜 필요한지를 알고 쓰면 꼭 라이브러리를 사용하는게 나쁜건 아니라는 결론에 도달했다...ㅎ(킹피셔 만세!)

 

야나두 영어회화

야나두는 주에 최소 4번은 꾸준히 하고 있는데, 얼마전에 영어로 말하는 꿈을 꿨다;;;ㄷㄷ 야나두 덕분인건가! 외국어 배울때 꿈에서 외국어 쓰면 잘 학습되고 있는거라던데!ㅎㅎ

 

Problem & Try

딱히 문제가 되고 있는건 없고, 요즘 새로 시도하는게 있다! 지난 강의자료 다시 살펴보기! 사실 초반에 강의자료를 대충 훑어보니 다 수업때 했던것 같아서 항상 과제만 확인하고 뒷내용은 안보곤했는데, 강의자료에 따로 또 조금씩 정리되어 있는 것들이 있어서 굿노트에 옮겨놓고 시간날때마다 다시 읽어보고 있다.

 

그리고 다음주는 출시프로젝트를 앞두고 기획을 검토받아야 한다. 그동안 어떤 앱을 만들고 싶다~ 뭐 이정도만 대충 생각했었는데, 무슨 API를 활용할 것인지, DB 구조는 어떻게 짤 것인지, 그런것도 세부적으로 생각해봐야 한다고 그러셨다. 일단, 이걸 우리나라 한정으로 낼지, 해외에도 로컬라이징해서 낼지 정해야 API를 확실히 고정할 수 있는데, 이런 부분도 멘토님들께 상담을 해봐야겠다.

 

Goals

1. 그날의 강의자료는 그날 공부하고 정리하기

2. 출시 프로젝트 기획 및 설계, 로직 잘 세우기

 

마무리

사실 지금까지... 내가 여기서 수업때 들어서 새로 추가하는 지식외에 뭔가 성장하고 있는지 진짜 의심이 많이 들었었다... 근데 그러면서도 평정심을 잃지않으려고 꽤 애를 썼는데, 오히려 그래서 나만 성장하지 못했나 싶기도 하다... 나는 잘하고 있는건가... 그냥 단순히 구현을 한가지 더 할 수 있게 되는 것 외에 개발자로서 성장해 나가고 있는건가... 잘 모르겠다;;

근데 그래도 일단 지금까지 해온걸 계속 해나가는 수밖에 없으니까, 열심히 해야지...

 

 

 

'Education > 새싹 iOS 3기' 카테고리의 다른 글

새싹 7주차 회고  (0) 2023.09.03
새싹 iOS 6주차 회고  (1) 2023.08.28
새싹 iOS 3~5주차 회고  (4) 2023.08.20
새싹 iOS 2주차 회고  (0) 2023.08.01
새싹 iOS 1주차 회고  (0) 2023.07.25

블로그의 정보

Roen의 iOS 개발로그

Steady On

활동하기