본문 바로가기

혼자 앱 개발하는 이야기

개발 9~12일차 (19.05.22-25) - 혼자 어플 만들기

 

 

 

 

 

 

 

19.05.22 우선 순위 정하기는 어렵다

 

어제는...열심히 에러 모듈을 만들었다. HTTP 모듈 틀도 잡을 수 있었다. 대충 어떤 것을 넣어야할 지 잡혔다.

 

ThreePercent를 더 발전시켜야 하는데 내 개인 플젝을 먼저 끝내고 진행을 해야하나 병행해야하나 고민이 된다.

이대로 있다가는 점점 관심이 끊길 것 같아서 3%를 먼저 해야할 것 같기도 하고. 

 

개발하면서 가장 어려운 건 우선순위를 정하는 일이다.

 

시간은 한정됐는데 공부할 건 많다. 전부하는 건 불가능하니까 가장 옳은 선택과 집중을 하고 싶은데, 지금의 나는 어떤 게 좋은 선택이고 어떤 게 나쁜 선택인 지 알 길이 없다. 

 

 

 

 

19.05.23 클래스를 아키텍처 패턴에 할당하기 고민

 

Alamofire를 쓰는건 문제가 아니다. 문제는 프로그램 구조를 어떻게하면 더 잘 짜느냐다. WeatherManager와 LocationManager까지 클래스를 나눈건 좋았는데 여기서 드는 의문.

 

고민 1. HTTPClient 클래스도 생성해주고, Library 클래스도 생성했는데 굳이굳이 WeatherManager와 LocationManager로 클래스를 분리시킬 필요가 있었을까? 이 코드들은 MVC 구조 어디에 해당될까?

고민 2. HTTPClient는 HTTP 통신만 하고 싶다. 그래서 WeatherManager에서 정보를 받아와서 SwiftyJSON으로 다듬는 작업만 처리하게 했는데, 이게 맞는 영역일까?

 

개발하다보면 소프트웨어 아키텍처를 따르기가 힘들다. 이 아키텍처가 MVC가 맞는지도 의심스러워진다. 그만큼 사용성이 애매한 경계에 있는 코드들을 양산하게 된다. 아직 초보라 그런가 ㅠㅠ

 

그 외에도 공부할 게 참 많다. 오늘도 공부할 질문들이 우수수 쏟아졌다...

 

- SharedInstance의 원리는 뭘까?

- SwiftyJSON으로 추출할때 타입 신경 안써도 되는 게 좋은 일일까? 

- 프로젝트를 하면서 생기는 Warning을 제대로 처리하는게 아니라 없애기에만 급급하다. 괜찮을까? 

 

제대로 문법을 파악하고 진행하면 좋겠지만, 그러기엔 출시 시간이 너무 오래걸릴 것 같다. 비록 나 혼자 하는 프로젝트지만 출시가 늦어지는 건 싫다. 근데 코드를 대충 짜는 것도 왠지 지는 느낌이다. 공부가 먼저냐 결과가 먼저냐? 닭이 먼저냐 달걀이 먼저냐?

 

사실 시간을 더 쏟으면 되는 일이지만...나중에 코드리뷰를 하면서 고민해봐도 되지 않을까? 라고 자꾸 타협하게 된다 ㅠㅠ

 

- 코드리뷰 주기는 어느 정도가 좋을까? 

 

회사 라이브러리를 더 자세히 뜯어보면 지금 떠오른 질문들을 해결할 수 있을까? 

 

이번 코딩으로 내가 아직 미숙하다는 걸 많이 깨달았다. 원래도 미숙한 건 알고 있었지만, 생각보다도 훨씬 더...!! 모르는 게 많다. 근데 개발 속도를 올리는 것도 중요할 것 같다. 이러다가는 이 간단한 작업이 5월을 넘겨서 6월까지 가겠어.

 

 

 

19.05.24 아쉬움 가득

 

어제는 개인 프로젝트를 할 여유가 없었다. 대신 회사에서 Non-fatal Error 보고하는 모듈을 만들고, sharedInstance에 대한 개념을 더 확실히 잡을 수 있었다. Swift랑 Objective-C가 어떻게 다른지도 알 수 있었다. Objective-C는 점점 사용처가 줄어들고 있는데, 확실히 Swift가 잘 몰라도 대충, 잘, 쓸 수 있어서 편리하기 때문에 당연한 결과다. 하지만 얘를 경계해야 한다. 그냥 막 쓰다가는 전문성 없는 개발자가 될 것 같다.

 

타입 캐스팅이나 Optional이 Warning을 띄울 때 대충 땜질처리한 게 점점 구멍을 드러내고 있다.

 

코드 리뷰를 한번 받아보고 싶은데, 내 개인프로젝트 리뷰를 누구한테 부탁해야 할 지....참 어렵다. 그리고 회사 프로젝트는 마땅히 할만한게 없으니 자꾸 Object-C 프로젝트만 파고 있는것도 아쉽다. 둘 다 할 줄 안다는 건 좋지만, Swift가 대세가 되어가고 있는만큼, 그리고 Rx 구조가 각광받는 만큼 새로운 프로젝트를 적용할 수 있는 기회가 왔으면 좋겠다.

 

 

 

19.05.25 역시 배움의 길은 멀다

 

어제 날씨 정보를 request하는 주체에 대해 고민해본 날이었다.

 

코딩은 참 논리적인 분야다. 어떤 객체가 API를 호출하는지, 참조 주체는 누구인지, 하다못해 오타 하나도 허락하지 않는게 정말 컴퓨터는 빈틈이 하나도 없다. 대충 넘어가는 법이 없기 때문에 개발자들이 스트레스를 받는 거다.

 

아무튼 Closure, @escaping 등에 대해 새로 공부했다. 사실 escaping은 여전히 헷갈린다. 여전히 closure 범위 밖의 인스턴스가 closure 안에서 수정되지 않는 이유는 모르겠다. 너무 중첩해서 closure를 썼기 때문인가? 

 

역시 아직 배울 게 많다. 하나의 앱을 출시하기 쉽지 않다!!