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를 위배하지 않나!? 물론 컴퓨터는 빠르고, 실제 환경이 아닌 테스트환경에서는 성능, 효율을 신경쓰지 실제환경 만큼 신경쓰지 않아도 된다고 공부했지만.. 이건 조금..