1년 4개월차 iOS '주니어'개발자입니다.지극히 개인적인 생각을 담고 있습니다.채용공고의 기술스택을 읽다보면, 같은 iOS앱을 개발하더라도 이렇게 서로 다른 기술들을 사용하고 있구나 라고 생각하게 됩니다. 1. 우리회사 프로젝트는 object-c 도 많이 사용하고 있어요.글을 쓰는 현재 2024년10월 기준 듣는 순간 엥? 하게 만든다.하지만 이전부터 시작된 프로젝트의 경우, 스위프트로 마이그레이션 하는 기간을 회사 사정에 의해 할당 받지 못한 경우일 수 있다.실제 지인의 회사에서 50%정도가 object-c로 구성되어 있었다.그렇기에 비지니스적으로 수정이 있지 않은 이상, 해당 코드는 별도의 수정없이 유지되고 있다.실제 시니어들의 이야기를 들어본다면) 잘 돌아가는 기능인데 굳이 손대서 모험하기 싫은거..
나는 회사에서 실수를 많이 하는 개발자이다.무슨 실수를 많이 하냐면, 기능적이 QA도 다른 팀원에 비해 2개정도 더 나오며, 커밋전 주석과 사용하지 않는 코드 삭제를 많이 잊어버린다.물론 처음부터 있던 실수였지만 요즘 부쩍 늘었다. 정말 너무 촉박한 일정에 급한 마음으로 개발하다 보니 빨리빨리! 때문에 그렇게 되버렸다.기존 코드파악은 하지 않고, 그 위에 "대충 빠르게, 대응되도록" 이란 생각으로 작업을 했기 때문이다.급하게 시작하는 개발에서 설계는 제대로 이루어질 리 없고, 그렇다보면 당연 부딪히는 빈도가 많아진다.특히 마음이 급해지면 정말 말도 안되게 효율이 떨어진다. PR에서 팀원들은 실수를 짚어주기 되었고, 건설적인 개발 방향지시는 점점 줄어들게 되었다.물론 PR을 하는 이유는 여러가지이고, 이러..
입사 후 지금까지의 개발 타임라인 별 프로젝트 후기를 작성하는 글입니다.포토위젯은 2주에 한번 빌드하고 있습니다. 1. 설정화면 리펙토링.기간은 약 1달이였습니다.처음 SwiftUI와 TCA를 사용하며 적응하는 기간이였습니다.사실 별 건 없었고, OldMySettingViewController를 SettingView로 리펙토링하는 작업이였습니다.너무 어려웠고, TCA의 화면전환 방식도 머리속에 들어오지 않아 정말 간단한 작업인데도 꽤 오랫동안 작업하였습니다.해당 기술들을 적용시켜 개발하는 것은 거의 iOS개발을 처음하는 듯 한 느낌이였습니다... 2. 포토위젯의 메인화면 투데이 페이지 개발.기간은 3주였습니다. iOS - 1인 처음으로 SwiftUI를 제대로 사용하고, 많이 공부한 프로젝트 입니다.그림자..
2023.06.19 ~ 포토위젯에서 iOS개발자 1년차를 맞이하였다.오랜만에 회고록을 남겨보려 한다. 포토위젯에서 작업한 프로젝트들을 기준으로 정리해보려 한다.포토위젯에 입사 후 가장 어려웠던 것은 사실상 처음 다뤄보는 기술들에 적응하기 였다.SwiftUI와 TCA, 이 둘은 그동안 익숙해져 있던 UIKit과 MVVM방식과 많이 차이가 있었다고 느꼈다.SwiftUI관계를 맺어 조건을 주는 오토레이아웃 방식이 아닌, 이 위치에는 이 뷰가 들어갈거야! 그 다음 이 위치에선 이 뷰가 들어갈거야! 라고 선언하는 듯 한 느낌이 들었다.그리고 문법이 Swift가 맞나..? 싶을 정도로 간결했다. (자세히 이해하려 들며 읽어보면 역시 스위프트이긴 하다.) - UIKit과의 차이점SwiftUI는 익숙해지면 생산성은 ..
22년 코드스쿼드를 수료하고, 여러회사의 채용과제를 하였습니다. 과제가 끝나면 "회사에서 내주는 채용과제 안에서 내가 어떤것을 보여주길 원할까?"는 생각으로 과제를 복기하였습니다. 채용과제는 얼마나 비용을 절약하며 만들 수 있나?를 확인하는 시험이라 생각하기에 이를 예를 들어보겠습니다. 성능적으로 빠르다 (효율적이다)는 비용을 절약하는 앱이 충족하는 조건들 중 하나라고 생각합니다. ( 성능이 전부가 아님. ) - 얼마나 빠르고 효율적으로 개발할 수 있을까? - 얼마만큼 읽기 쉽게 개발할 수 있을까? - 부가적인 것들 ( 추가구현 + 테스트 ) or 사용 기술스택(채점비율이 높을 수 있음) HIG, 인터넷 속도, 에러처리 등 보통 채용과제에서 무한스크롤을 보여주는 이미지Cell을 구현해야 하는 경우가 많습..
앱개발에 있어 화면전환, 관리는 매우 중요합니다. 최근 공부한 기술 NavigationTree와 NavigationStack에 관한 정리글입니다. 1. Tree구조 트리구조입니다. 자료구조 트리와 같은 모양입니다. 3번의 화면이 사용자에게 노출되려면, 1번 화면이 먼저 노출되어야 합니다. 또한 5번 화면이 노출되려면 3번화면이 먼저 노출되어야 합니다. 어떠한 화면이 노출되기 전, 선행되어 노출되어야 하는 화면을 강제할 수 있는 장점이 있습니다. 하지만 독립적으로 7번화면만 보여주고 싶다!는 의도라면 트리구조와는 어울리지 않을 수 있습니다. - (1, 4 화면이 강제적으로 표출이 되어야 하기 때문) 해당 구조는 다음과 같은 딥링크에서 유용하게 사용할 수 있습니다. 예) 인스타그램 - 특정 게시글의 새로운 ..
화면에는 사각형 추가버튼과 보드화면이 있습니다. 사각형 추가버튼을 누르면 화면에 랜덤position으로 사각형이 추가됩니다. "보드에서 사각형이 있는 position을 터치 시 해당 사각형이 선택되고, 그에 따른 사이드이펙트 로직들이 실행됩니다." 고민사항. 랜덤으로 생성된 사각형인데, 이를(사각형의 position) 어떻게 알고 해당 메소드 인자값으로 position을 전달하지!? 1. 모든 좌표를 for문으로 검사하여 테스트한다. 만약 375 * 812라면... O(375 * 812)이다... 이게 맞나? 테스트의 First원칙 중 Fast를 위배하지 않나!? 물론 컴퓨터는 빠르고, 실제 환경이 아닌 테스트환경에서는 성능, 효율을 신경쓰지 실제환경 만큼 신경쓰지 않아도 된다고 공부했지만.. 이건 조금..
볼 영화 뭐 없나?? 넷플릭스 구독료는 꾸준히 빠져나가지만, 그의 가치만큼 활용하지 못하고 있기에 "하루 한편 영화를 보자!" 고 결심하였다. 그러던 중 쇼생크탈출 이란 영화가 눈에 들어왔다. 전부터 많이 들어봤던 영화였다. 엄마가 결혼 전에 극장에서 봤다던 그 영화, 아빠도 극장에서 봤었던 영화이다. (엄마아빠가 만나기 이전) 주인공 앤드류가 재판을 받으며 시작했던 걸로 기억한다. 주인공은 누명을 쓰고 감옥에 들어오게 된다. 감옥에서 본인의 무죄를 주장하지만 돌아오는 대답은.. "여기 다 죄없는 사람들만 모여있어" 주인공은 빠르게 감옥생활에 적응해가며 삭막했던 교도관들의 마음까지도 녹여버렸다. 교도소장과 많은 이야기를 나누며 교도소를 개선했으며 수감자들의 생활을 개선하였다. 주인공의 친구 헤이틀런(가장..
개발자들의 근본 지식이라 함은 CS, 클린코드, 알고리즘 이라 생각한다. 그 중 이번 포스트는 '클린코드'를 공부하고 느낀점이다. 객체지향 관점, 여러 원칙들을 미뤄두고 '읽기 좋은 코드를 작성해야 하는 이유'를 정리하려 한다. 개발에 있어 읽기 좋은 코드를 작성하는 것은 매우 중요하다 생각한다. 1. 개발자들은 협업을 하기 때문. 2. 프로그램이 변화에 유연해야 하기 때문. 1. "앗 그건 제가 담당자가 아니라서요..." A기능을 개발하던 a개발자가 휴가인 날이다. 해당 기능에 대한 변경, 수정을 위해 서비스팀에서 b개발자에게 부탁을 했다. B기능을 개발하는 b개발자는 대답하였다. "앗 그건 제가 담당자가 아니라서요... a개발자님이 출근하면 부탁드리셔야 할 듯 해요." 하지만 회사에선 당장 수정해야 ..
모바일 개발팀이 없는 회사이며 백, 프론트 개발자들로만 이뤄진 개발팀에 합류하였다. 그간 열심히 하지 않은 죄를 달게 받을 때가 온 것이다. 면접때 질문은 클린코드와 CS지식이 전부였고 구현해야 할 기능들을 설명해주고 할 수 있냐 물어봤다. 질문은 모두 대답하고 할 수 있다 말하였다. 시리즈A투자도 받았으며 서비스들도 이미 매출이 많이 나오고 있는 회사였다. 괜찮을 거라 생각하고 입사하기로 하였다. 신입 iOS 개발자 3주차가 지났다.. 사실 배울 게 많을까? 라는 생각을 많이 하고 들어갔는데.. 역시 배운거 엄청 많다. 혼자 공부했으면 평생 공부 못했을 것들 수두룩 빽빽이다. 기억에 남는 것들이 몇가지 있다.. 1. 배포 자동화. (CI/CD다.) 프론트, 백이 구축해둔 라인을 그대로 따라가라 했다. ..