FitCast: 기온별 옷차림
구글 검색 "기온별 옷차림"

간절기만 되면 항상 외출 전에 "기온별 옷차림"을 검색하여 날씨 앱과 번갈아가면서 보게 된다.

이때마다 위젯으로 제공하면 좋겠다는 생각을 해서 어플을 찾아보면 앱스토어에 있는 어플들은 UI가 내 마음에 썩 들지는 않는달까..

그래서 이번에 직접 만들어보았다.


 

‎Fitcast: 기온별 옷차림

‎- 외출시간을 설정하여 해당 시간의 평균기온을 알 수 있습니다. - 24시간의 일기예보를 1시간 단위로 확인할 수 있습니다. - 위젯을 통해 현재 기온과 그에 맞는 옷차림을 확인할 수 있습니다.

apps.apple.com

2023년의 겨울은 따듯함과 극한 추위가 함께 있는 겨울이었다.

분명 4계절이 뚜렷한 건 알겠는데, 일주일 단위로 계절이 바뀌는 느낌이랄까..

그래서 더더욱 "기온별 옷차림"을 많이 검색해 보았다.

 

Fitcast 스크린샷

 

기본적으로 시간단위 날씨정보와 외출시간을 설정하여 해당 구간의 평균기온이 나오게 하였다.

미리 저장해 둔 기온별 옷차림이 평균기온에 맞게 화면 중앙에 나오는 형태이다.

 

크게 복잡한 로직이 요구되지 않는 앱이어서 3-4주면 만들겠거니 시작했는데, 두 달이나 걸려버렸다.

심지어 처음 구상했던 다른 지역 날씨 조회 기능은 빠진 상태로 출시하였다...

현재는 사용자의 위치를 조회하여 해당 지역 정보만 조회가 가능하다.

 

개인 프로젝트를 할 때마다 마주하는 순간이 바로 내가 구상했던 기능들을 다 구현하기 위해 데드라인을 미룰 것인가, 아니면 미구현된 부분은 추후에 업데이트하기로 하고 현재 구현된 부분까지만 마무리하고 배포할 것인가에 대한 혼자만의 줄다리기가 발생하게 된다는 점이다. 

 

현재 대한민국 날씨가 굉장히 변덕스럽다는 점을 감안해서 이번에는 일단 출시를 하고

내가 직접 사용해 보면서 불편한 점들을 개선해 나가는 쪽으로 결정하여 배포를 우선시하였다.

 

프로젝트를 진행하면서 처음에 가장 신경 썼던 부분은 iOS 순정 앱과 비슷한 UI 구성과 룩이었다.

아이폰 순정 날씨 위젯과 나란히 놓았을 때 위화감이 없었으면 해서 그렇게 구성하려 했고,

배경화면 색상과 UI구성을 최대한 흉내 내어 보았다.

 

이번에는 별도의 외부 라이브러리는 사용하지 않았고, 요즘 많이 사용한다는 SwiftUI 프레임워크를 이용하였다.

UIKit을 대체하기 위해 나온 건 아니지만, 확실히 UIKit에 비해 직관적이고 쉬워졌다고 생각한다. 

 

다음으로 서비스의 핵심인 WeatherKit.

날씨 정보를 가져오는 데 사용한 애플 측에서 제공하는 API다.

async / await 표현을 이번에 처음 마주해서 당황했는데,

다행히도 자주 도움을 받는 naljin님의 글 덕분에 기본적인 지식은 이해하였다.

 

다음 핵심인 WidgetKit. 마찬가지로 애플 측에서 제공하는 위젯 제작 프레임워크이다.

이번 프로젝트의 주요 목적이라고 할 수 있는 위젯 기능의 구현을 위해 필요했다.

당연하게도 처음 사용하다 보니 사용법을 이해하는데에 시간이 많이 걸렸는데, 그만큼

iOS에서 위젯이 어떻게 작동하는지 평소의 궁금증이 해결되어서 좋았다.

 

 

GitHub - hyun083/Fitcast

Contribute to hyun083/Fitcast development by creating an account on GitHub.

github.com

깃허브에도 신경쓰면서 작업을 했다. 아직도 서투르긴 하지만 우연히 좋은 Commit massage 작성법을 발견해서 이전에는 그냥 작업 끝나고 눌러대던 커밋버튼을 나름대로 작업의 구간과 의도를 나타내기 위해 메세지를 작성하고 정리해가면서 작업하였다.


노마드 코더 - 아이디어가 있다구? 창의력을 위한 조언 한마디

사실 이전까지만해도 "이미 있는 서비스네" 라는 결론으로 시작하지 않고 묻어둔 개인 프로젝트가 몇가지 있다.

Fitcast 또한 마찬가지로 이미 같은 기능을 제공하는 앱이 많이 출시되어있는 상태임에도 생각을 바꾸고 프로젝트를 시작하게된 계기가 유튜브에서 저 썸네일을 발견하고서 부터다.

 

간간히 즐겨보는 노마드 코더님의 영상인데, 요약하면 창의적인 서비스에 대한 이이디어가 떠오르더라도 이미 누군가 생각했을 가능성이 높으니, 해당 서비스가 존재하는지 구글링 하지 말고 아이디어에 대해서만 집중하여 나만의 창의성을 부여하라는 얘기다.

 

이미 있는 서비스인 것을 알지만 경쟁 서비스보다 내가 만든 서비스가 조금이라도 더 나은 점이 있다면 그것으로 차별점을 두는 것이 의미있지 않을까 라는 결론에 도달했다.

노마드코더 - 전설의 프로그래머 형님의 찐 공부법!

또하나 재밌게 본 영상이 천재들의 코딩 공부법.

Swift 창시자라는 썸네일이 내 시선을 사로잡았다.

 

개발실력을 쌓기 위해 책을 보고 암기하지말고 무언가를 만들어보고 그 과정에서 마주한 문제들을 해결하기 위해 지식들을 찾아가면서 성장하라는 얘기이다.

 

사실 개인 프로젝트를 시작하라는 문구보다 책을 보고 암기하지 말라는 문구가 더 와닿았다. 실제로 나는 정반대로 프로젝트보단 강의영상 시청 위주의 학습을 이어오고 있었고, 이것이 동기와 흥미가 금방 식어버린다는 것을 최근에 느꼈기 때문이다.

 

개발자는 현실의 문제를 IT기술로 해결하는 사람이라고 생각한다. 따라서 크건 작건 현실 속의 불편함을 해결해 나가는 과정을 통해 성장하는 것이 개발자로서의 흥미와 동기를 잃지 않는 방법이 아닐까 생각하여 프로젝트를 시작한 것이다.

 

작성하고 보니 나는 주위의 환경에 크게 영향을 받는 타입이라고 생각한다.

그분들에게 도움을 받았듯이 나도 언젠가 글속에서 언급한 개발자 분들 처럼 남들에게 도움을 주는 그런 사람이 되고 싶다.

2022년 10월에 올라온 현대오토에버 공고다. 

본인은 iOS 개발자로 성장하기 위해 모바일 App 직무를 지원했다.

전형 절차

전형 절차는 서류와 코딩테스트 그리고 인성검사를 묶어서 본다. 다른 직무는 서류와 인성검사, 이후 pt면접이 진행되는 것으로 알고 있다. (같이 지원한 친구가 이쪽 전형으로 진행이 되어 전해 들었다.) 정말 금방 지나간거같은데 채용과정에 두 달이라는 기간을 보냈다는 사실이 놀라웠다.

 

서류 전형

자기소개서

자기소개서에는 두가지 질문을 적는다. 

  • 현대오토에버의 해당 직무에 지원한 이유와 앞으로 현대오토에버에서 키워 나갈 커리어 계획을 작성해주시기 바랍니다. (최소 500자, 최대 1,000자)
  • 지원 직무와 관련하여 어떠한 역량을(지식/기술 등) 강점으로 가지고 있는지, 그 역량을 갖추기 위해 무슨 노력과 경험을 했는지 구체적으로 작성해주시기 바랍니다. (학내 외 활동/프로젝트/교육 이수 과정 등 본인의 경험을 기반으로 작성해주시기 바랍니다.) (최소 500자, 최대 1,500자)

평소 모빌리티에 정말 관심이 많았고, 2021년  현대오토에버가 오트론, 앰엔소프트와 합병되면서 모빌리티 기업으로 방향을 전향했기에 자기소개서에는 내 관심사와 노력들을 잘 녹여낼수있지 않았나 싶다. 

코딩테스트

코딩테스트는 현대자동차 그룹에서 운영중인 코딩테스트 플랫폼 '소프티어'로 진행되었다. 총 3문제가 나왔고, 두 문제는 풀었지만 마지막 문제는 남은 시간 동안 붙잡다가 제출했던 기억이 난다. 사실 변별력 있는 문제가 마지막 문제라고 생각했기에 테스트 종료 후 큰 기대를 하지 않았다.

인성검사

이후 진행된 인성검사. HMAT라고 부르는 검사를 한다. 접속링크가 문자로 연락이 왔고, 기간 내에 응시하면 된다. 그냥 솔직하게 질문 항목들을 선택하면 되고, 문항수가 많은 만큼 집중력이 흐트러지지 않게 정신 붙잡고 봤었다.

 

사실 해당 결과를 받았을 때도 크게 기대안했다.

1차 면접

1차 면접은 온라인으로 30분씩 두 번 진행된다. 안내사항에는 세션A(면접관多:지원자1)와 세션B(면접관1:지원자1)로 진행된다고 적혀있었다.

세션 A(면접관2:지원자1)

세션 A에서는 나와 나이가 비슷해 보이는 현직자분과 어느 정도 연륜이 있어 보이는 현직자분 이렇게 두 분과 면접을 진행했다. 처음 10분간 허수를 거르기 위한, 즉 정말로 현대오토에버를 원해서 들어온 건지 확인하기 위한 몇 가지 인성질문들이 들어왔고, 나머지 시간에는 제대로 기억이 나지 않을 만큼 기술질문들이 쏟아졌다. 기술면접이 진행될 것을 알았기에 전날밤까지 iOS관련 기술질문들을 찾아봤었고, 한두 개 질문 정도 버벅거리긴 했지만 잘 대답했다고 생각한다. (사실 면접 끝나고 긴장이 풀어졌기에 제대로 답했는지 기억도 나지 않는다.)

 

세션 B(면접관1:지원자1)

세션 B에서는 코딩테스트 결과에 대한 질문들로 시작을 했다. 사실 이 부분도 면접 전에 알고 있던 사실이라 부랴부랴 어떤 문제였는지 기억해내려 했지만 마지막에 고생했던 문제만 기억에 남았기에 사실 좀 쫄렸다. 다행히도 면접관께서 내가 적은 코드들과 문제들을 보여주셔서 내가 어떤 방식으로 문제를 접근했는지 설명하는 게 가능했었다. 풀지 못했던 문제에 대해서도 정답을 혹시 생각해 냈는지와 같은 질문이 들어왔지만, 면접관 분도 지금 봐서는 바로 떠오르지 않을 거란 말로 안심을 시켜주셨다. 물론 올바른 풀이는 답하지 못했고 내가 생각하는 다른 접근 방식들에 대해 말씀드렸다. 아마도 코딩테스트 결과는 채용 전형에 큰 영향을 미치지 않는 것으로 생각이 된다. 코딩테스트 이후 기술질문이 이어지고, 세션A와는 달리 내가 답하는 내용들을 열심히 옮겨 적으시는 모습을 보여주셨다. 마지막엔 몇 가지 관심사와 관련된 질문이 있었던 것으로 기억한다.

 

기대하지 않았기에 그만큼 기뻤다.

2차 면접

마지막 면접에 대한 정보를 찾아보는데, 기술질문이 많이 들어와서 1차와 다를 게 없었다는 글도 있었고, 인성문제만 꽉 채워서 봤다는 후기도 있었기에 혼란스러웠다. 결국 iOS 관련 기술지식 준비와 내가 평소에 추구해온 개발자로서의 가치관에 대한 생각들을 쭉 정리해가면서 2차 면접을 준비했다.

 

특이한 점은 서류전형에서 요구하지 않았던 증명사진과 대학 졸업 증명서를 미리 요구했고 채용검진도 2차 면접 전에 받아달라는 연락을 받았다. 채용검진은 KMI에서, 본인 집에서 가까운 지점으로 가서 검사를 받으면 된다.

 

2차 면접의 경우도 온라인 다대다로 진행되었다. 인사팀 한분, 그리고 현직자 임원 두 분이 들어오신다. 지원자의 경우 나는 iOS 개발자로 지원했지만, 안드로이드 개발자로 지원한 분과 함께 3:2로 면접이 진행되었다.

 

면접 내내 기술질문은 일절 들어오지 않았고, 인성질문들로 가득했다. 공통질문에 번갈아 가면서 대답을 하면 되었고 총 면접시간은 40분 정도 주어졌기에 지원자에 대한 시간은 그렇게 넉넉하지는 않았다. 평소 내가 생각했던 가치관에 대해서 말했고, 내가 어떤 사람인지에 대해 충분히 전달했다고 생각했다.

 

사실 합격할 거라고 기대했다. 인사팀분이 졸업 후 공백기에 대한 질문에 답했을 때, 많이 준비해왔다는 대답을 들었고, 다른 지원자분이 나에 대해 많은 경험을 했다는 언급도 하였기에 내심 면접 끝나고 결과날만 목 빠져라 기다렸다.

 

주변에서도 최종면접이면 거의 다 된 거라고 말해주었고, 왜 그랬는지 모르겠지만 나 또한 그럴 거라 생각했기에, 아쉬운 결과를 받았다. 최종 탈락 통보를 받고 면접복기를 하면서 내가 다른 대답을 했더라면 어땠을까 생각을 했지만, 후회는 내마음만 상하게 할 뿐 아무런 도움이 되지 않는다. 취업 준비에 있어서 귀한 경험이라 생각하기로 했고, 면접을 준비하는 과정에서도 개발자로서 성장하는 부분이 있었다고 생각한다.

 

가고 싶었던 기업이기에 너무나도 아쉽지만 이번 경험을 양분 삼아 더 좋은 사람으로 성장해야겠다.

+ Recent posts