
앱스토어에서 실적이 저조한 앱을 아예 내리려는데, '현재 앱을 삭제할 수 없습니다.'라고 떴다. 삭제가 불가능한 경우는 아래와 같다.연관된 인앱 구매 항목이 존재판매중인 앱아래 상태의 앱Ready for Review (심사 준비됨)In Review (심사 중)Rejected (거절됨)Metadata Rejected (메타데이터 거절됨)Waiting for Review (심사 대기 중)다른 계정으로 이관 중인 앱앱 번들에 포함된 앱 나의 경우, 무료앱에 이미 배포가 완료된 상태였고, 다른 계정으로 이관이 진행중이라거나 앱 번들에 포함되지 않은 앱이었다. 그런데 앱을 삭제할 수 없었던 이유는 무료앱이더라도 가격은 0원으로 설정되었기 때문이다. 위와 같이 [가격 및 사용 가능 여부]로 이동해서 화면 제일 하단..
리액트 훅(Hook)함수형 컴포넌트에서 상태 관리나 라이프사이클 기능 등을 사용할 수 있게 해주는 React의 기능함수형 컴포넌트: 그냥 JavaScript 함수. props를 받아서 JSX을 리턴.자주 쓰는 기본 훅useState: 상태 관리 할 수 있게 해줌useEffect: 컴포넌트가 렌더링될 때, 혹은 특정 값이 변경될 때 실행되는 코드 작성useRef: DOM을 직접 참조하거나, 렌더링과 상관없는 값을 저장할 때 사용useMemo, useCallback: 컴포넌트가 불필요하게 다시 계산되거나 함수를 새로 생성하지 않게 최적화할 때 사용useReducer를 사용해서 로직을 컴포넌트로부터 분리하는 건 요즘 많이 쓰는 패턴 중 하나리액트 훅은 이름 앞에 항상 use를 붙임StateuseState로 S..

이번에 준비중인 서비스에서는 서비스 이용 보상으로 스탬프를 준다. 그런데, 그 스탬프 획득 조건이 여러 가지이다. 연속 학습을 했을 때 주는 스탬프도 있고, 특정 날짜에 들어왔을 때 주는 스탬프도 있고. 스탬프 기능을 구현하면서 이걸 JPA로 구현할 때 어떻게 하면 좀 더 객체지향적으로 할 수 있을지 고민했다. 이런식으로 서비스 이용 보상이 주어지는 경우는 많으니까 다른 분들은 어떻게 하실지 모르겠지만, 나는 아래와 같이 했다. 우선 스탬프 획득 조건이 크게 세 종류라고 생각하고 진행했다.CountCondition: 어떤 행동을 일정 횟수하면 주어지는 조건TimeRangeCondition: 어떤 기간동안 어떤 행동을 하면 주어지는 조건DateRange: 어떤 날짜에 어떤 행동을 하면 주어지는 조건 획득 ..

개발을 하다보면 매번 아무 것도 없는 상태에서 시작하는 게 버거운 순간이 온다. 그럴 때 필요한 건 바로 템플릿! 나도 몇 개 앱을 개발해보니 생각보다 따로 설정하기 귀찮은 부분이 있어 미리 설정을 다 해놓은 템플릿만 있으면 비즈니스 로직만 갈아끼우면 되니 편하겠다는 생각이 들었고, 그래서 오늘은 iCloud 동기화 기능이 담긴 Template Repository를 만들었다. 우선 XCode에서 사용할 수 있는 Project template 형태로 생성할까 했는데, 생성은 했는데 프로젝트를 생성할 때 팀 정보 입력하는 화면에서 안 넘어가는 이슈가 있었다. 그래서 아예 프로젝트덩어리째 템플릿화하는 방법을 생각했다. 깃허브에서 Template Repository 만들기 평소와 똑같이 깃허브에서 Reposit..