[iOS] DTO의 Optional 속성과 앱의 하위 호환성 고민 (결론 없음 주의)
·
iOS/개념 & 개발
* 혼자 고민한 과정을 기록 목적으로 적은 포스팅입니다. 읽기 전 참고 부탁드립니다 :) DTO DTO는 서버와 통신하는 API의 데이터를 디코딩, 인코딩하기 위한 객체입니다. { "id": 1000, "name": "다이어트", "continued": 10, "lastChallenged": "2011-04-10T20:09:31Z" } 가령 API로 오는 데이터가 위와 같다면, struct CategoryDTO: Codable { let id: Int let name: String let continued: Int let lastChallenged: Date } CategoryDTO는 id, name, continued, lastChallenged 속성을 가지게 됩니다. 이때 각 속성은 Non-옵셔널이 ..
[건대 맛집] 정면 리뷰 / 국수 맛집 / 미쉐린가이드 서울 2024
·
🐱 정주는 쉬는 중 :]/맛집
기본 정보 가게 이름 정면 메뉴 & 가격 2인 세트(백면 or 홍면 2개, 단호박 식혜 1개) 21,000원 - 백면, 홍면 9,000원 - 단호박 식혜 3,500원 가게 입구 가게 입구입니다. 화이트톤 건물에 큰 간판 대신 글자를 양각으로 만들어서 세련된 느낌을 줬어요. 가게 입구에는 정면의 대표 메뉴 두 가지가 있습니다. 대표 메뉴라기 보단 유일한 메뉴입니다 ㅎㅎ 정면은 두 가지 국수 + 단호박 식혜만 파는 가게입니다. 미쉐린가이드 서울 2024에도 등재되었다고 해요. 이거까진 몰라는데 입구에 붙어 있어서 대단하구나 싶었어요. 회사 동료분에게 여길 방문 했다고 말하니 유튜브에도 출연하신 적이 있더라고요? https://youtu.be/_5sXa9n_cgY?si=85uK6-0fbl4leVRi 사장님께서..
[Swift] 프로토콜 메서드의 매개변수 기본 값 설정 (Defining default parameters for protocol methods)
·
Swift/개념 & 응용
서론 프로토콜 타입을 사용할 때 불편한 점이 하나 있습니다. 메서드 파라미터에 기본 값을 사용할 수 없다는 점입니다. 예를 들어, UseCase의 execute 파라미터로 page를 전달해야 한다고 합시다. protocol UseCaseProtocol { func execute(page: Int) } struct UseCase: UseCaseProtocol { func execute(page: Int) { // Logic } } let useCase: UseCaseProtocol = UseCase() useCase.execute(page: 1) 그러면 위 코드처럼 항상 page를 전달해줘야 해요. page에 기본 값을 설정하고 싶어도 프로토콜 메서드에는 Default argument를 설정할 수 없다는 ..
[iOS] ProxyMan 설치부터 Response 관찰까지
·
iOS/개념 & 개발
서론 앱을 개발할 때 서버와 API 통신을 자주 합니다. API 통신 개발 과정에서 문제가 생겼을 때 디버깅을 위해 Postman, Swagger를 사용하기도 합니다. Postman, Swagger도 좋은 방법이지만, 실제 내 앱이 어떤 요청과 응답을 주고 받는지 궁금할 때가 있습니다. if let requestBody = urlRequest.httpBody, let requestBodyString = String(data: requestBody, encoding: .utf8) { print("[요청 데이터]\n\(requestBodyString)") } if let responseBody = try? encoder.encode(body), let responseBodyString = String(dat..
[일상] 남산 방문 (w. 노을, 돈가스, 비빔밥)
·
🐱 정주는 쉬는 중 :]/일상
서론 전 거의 6년 간 서울에 살았지만, 아직까지도 남산에 한 번도 가본 적이 없습니다. 굳이 남산까지 갈 일이 없었는데, 1월에 좋은 기회가 생겨서 여러 사람들과 함께 남산에 방문할 수 있었어요! 케이블카에서 케이블카까지 도보로 이동 후 케이블카를 타고 남산 전망대를 향해 출발했어요. 케이블카 가격은 성인 1인 왕복 14,000원입니다. (1만 원 미만이겠거니 했는데 생각보다 너무 비싸서 놀랐어요;;) 표를 구매하고 조금 대기하면 케이블카를 탈 수 있어요. 케이블카는 거의 30명 가까이 타게 되는데요. 케이블카도 처음이라 이렇게 대규모로 이송(?)이 될 줄은 몰랐습니다 ㅋㅋ 4~6명씩 조곤조곤 이동할줄 알았는데... 케이블카 안에서 찍은 사진입니다. 높은 건물과 저 건너 남산이 보이는 게 너무 이쁘더라..
[종로구 맛집] 양연화로 종로직영점 리뷰 / 을지로 맛집 / 직원이 구워주는 고깃집
·
🐱 정주는 쉬는 중 :]/맛집
기본 정보 가게 이름 양연화로 종로직영점 메뉴 & 가격 한돈 통삼겹살 160g 17,000원 한돈 통목살 160g 17,000원 갈매기살 150g 17,000원 항정살 150g 19,000원 양연 모듬 A 세트 (2인 커플 추천 / 삼겹살 160g, 목살 160g, 갈매기살 150g) 47,000원 밑반찬 기본으로 제공되는 밑반찬입니다. 종류가 정말 많죠? 종류만 많은게 아니라 하나하나 맛도 훌륭합니다. 특히 감자샐러드와 파절이가 미쳤더라고요. 감자샐러드는 간이 자극적이지 않고 슴슴해서 에피타이저로 먹기 좋고, 파절이는 매실청의 단맛이 강하게 느껴져서 느끼함을 싹 잡아줍니다. 고기랑 싸먹기 너무 좋아요. 명이나물과 고추장아찌도 별미입니다. 서비스 된장찌개 & 생일 서비스 미역국 양연화로 종로직영점은 네이..
[회고] 네이버 부스트캠프 웹・모바일 8기 마지막 회고
·
경험 회고/네이버 부스트캠프 웹・모바일 8기
서론 길고 긴 네이버 부스트캠프가 끝이 났습니다. 네이버 부스트캠프의 공식적인 마지막 일정은 12/15였고, 수료식은 12/16였습니다. (벌써 한 달이 지났네요;;) 늦게나마 멤버십 수료 회고를 작성해보려고 합니다. 네이버 부스트캠프를 수료한 저는 어떤 점이 달라졌는지를 중점으로 작성해 볼게요. (네이버 부스트캠프 회고도 이 글이 마지막이겠네요. 물론 프로젝트는 꾸준히 유지보수할 예정이기 때문에 moti의 개발일지는 올라올 거 같아요 🙂) 숲을 보는 문제해결력 먼저 문제 해결에 임하는 태도가 바뀌었습니다. 네이버 부스트캠프 이전에는 문제 해결을 주먹구구식으로 진행했던 거 같아요. 당장의 문제 해결에 급급해서 사이드 이펙트, 전반적인 구조, 근본적인 원인 등을 고민하지 않았고, 단순히 문제 해결이 되면 ..
[iOS] moti 개발일지 - 5. 보이스 오버(Voice Over)
·
iOS 프로젝트/moti(네이버 부스트캠프)
GitHub - boostcampwm2023/iOS02-moti: 네이버 부스트캠프 8기 iOS moti 앱 📸 네이버 부스트캠프 8기 iOS moti 앱 📸. Contribute to boostcampwm2023/iOS02-moti development by creating an account on GitHub. github.com 서론 moti는 더 나은 사용자 경험을 위해 노력한 앱입니다. 지금까지 작성한 인터랙션 애니메이션, 메모리 개선 등이 그 예시인데요. 이번 포스팅에서 다루는 보이스 오버도 더 나은 사용자 경험을 위해 적용한 기능입니다. 또한, 큰 기업 위주이지만 올해부터 모바일에도 접근성 지원을 필수로 적용해야 합니다. 접근성이 드디어 모바일에도 적용이 되는구나 느껴졌던 현상이에요. 이러한..
[iOS] moti 개발일지 - 4. 다운 샘플링과 메모리 캐시 개선
·
iOS 프로젝트/moti(네이버 부스트캠프)
GitHub - boostcampwm2023/iOS02-moti: 네이버 부스트캠프 8기 iOS moti 앱 📸 네이버 부스트캠프 8기 iOS moti 앱 📸. Contribute to boostcampwm2023/iOS02-moti development by creating an account on GitHub. github.com 서론 moti 앱은 사진이 핵심 콘텐츠인 앱입니다. 모든 곳에서 사진을 보여줘요. 그렇기 때문에 이미지에 사용하는 메모리가 많습니다. 이번 개발일지에서는 이미지에 소비되는 메모리를 줄이기 위해 도입한 다운 샘플링과 메모리 최적화 과정을 다뤄보겠습니다. 특별하진 않지만 매우 중요한 고민 과정이었습니다. 다운 샘플링이 필요한 이유 다운 샘플링을 적용하기 전, 팀원에게 다운 샘플..
[iOS] moti 개발일지 - 3. Interaction Animation
·
iOS 프로젝트/moti(네이버 부스트캠프)
GitHub - boostcampwm2023/iOS02-moti: 네이버 부스트캠프 8기 iOS moti 앱 📸 네이버 부스트캠프 8기 iOS moti 앱 📸. Contribute to boostcampwm2023/iOS02-moti development by creating an account on GitHub. github.com 서론 이번 포스팅에서는 인터랙션 애니메이션을 다룹니다. moti에서는 인터랙션 애니메이션도 하나의 도전 과제로 설정했습니다. 사용자 경험을 좋게 하기 위한 요소 중 하나라고 생각했기 때문입니다. 그래서 moti에는 어떤 인터랙션 애니메이션이 있는지, 구현을 하면서 어떤 어려움이 있었는지 말해보겠습니다. 인터랙션 애니메이션 적용 이유 처음 인터랙션 애니메이션에 대해 알게된건 ..
유정주
'분류 전체보기' 카테고리의 글 목록 (3 Page)