전체 글 673

[회고] 네이버 부스트캠프 웹・모바일 8기 멤버십 5주 차 회고 & 기술적 고민

서론 이번 5주 차에서는 세 번째 앱을 만들고 있습니다. 5주 차는 이미 알고 있던 개념을 더 자세히 알게 된 주차였던 거 같아요. 요즘 너무 피곤해서 핵심적인 내용만 짧고 굵게 다뤄보려고 합니다. UITableView 활용 기존에도 UITableView는 자주 사용했지만 테이블뷰의 다양한 기능을 활용하진 않았습니다. 그냥 텍스트 데이터를 표시하는 정도로 활용했고, 그거보다 복잡해지면 UICollectionView를 사용했던 거 같아요. 하지만 이번 주차에서 UITableView의 능력(?)을 알게 되었습니다. Editing 모드, 슬라이드 메뉴를 기본적으로 지원해줘서 훨씬 편하게 구현할 수 있더라고요. 물론 UIListContentConfiguration라는게 있지만, 그래도 테이블뷰와 콜렉션뷰를 고민..

[iOS] FPS 측정하기 - CADisplayLink

CADisplayLink CADisplayLink는 화면의 업데이트 주기(VSYNC 주기)로 동작하는 타이머 객체입니다. CADisplayLink를 사용하면 디스플레이 주사율에 맞춰서 특정 함수를 호출시킬 수 있는데요. 애니메이션과 그래픽 렌더링을 정확한 타이밍에 수행할 수 있어서 더 부드럽고, 최적화할 수 있습니다. 또한, Actual Frame Rates와 Frames Per Second를 측정할 수 있습니다. Actual Frame Rates는 기기가 출력하는 초당 프레임 수를, FPS는 실제로 표시되는 프레임 수를 나타냅니다. 마지막으로 preferredFrameRateRange를 설정하여 프레임 수를 제어할 수 있습니다. OS가 알아서 최적화를 하지만 강제할 필요가 있는 경우 preferredF..

iOS/개념 & 개발 2023.10.01

[강남구 맛집] 바토스 파르나스몰점 리뷰 / 타코 맛집 / 마가리타 맛집

기본 정보 가게 이름 바토스 파르나스몰점 위치 서울 강남구 테헤란로 521 지하 1층 F-25호 메뉴 & 가격 언텐틱 마가리타 - 클래식 12,500원 언텐틱 마가리타 - 시그니처 14,900원 신선한 과카몰리와 칩스 11,900원 칠리 라임 쉬림프 타코 15,900원 프레시 치킨 14,900원 메뉴판 메뉴판입니다. 저희는 수많은 영어에 어지러워져서 서버분에게 메뉴를 추천 받았습니다. 신선한 과카몰리와 칩스, 새우 타코, 프레시 치킨을 주문했고, 마가리타를 클래식, 시그니처 한 잔씩 주문했습니다. 오펜하이머를 보고나서 방문한 곳이라 마가리타를 마셔보고 싶었답니다 ㅋㅋ 기본 메뉴 기본으로 주는 메뉴입니다. 나초칩과 칠리 소스에요. 2명이라 두 개가 나온 거 같아요. 고소해서 에피타이저로 괜찮았습니다. 마가..

[천안시 맛집] 소담골 본점 리뷰 / 바지락 칼국수 맛집 / 들깨수제비 맛집

기본 정보 가게 이름 소담골 본점 위치 충남 천안시 서북구 봉서산로 69-10 상원빌 메뉴 & 가격 들깨 수제비 10,000원 바지락 칼국수 10,000원 메뉴판 메뉴판입니다. 칼국수, 수제비 치고는 비싸다고 느껴질 수 있는데요. 아래 음식 사진을 보면 전~혀 아니라는 걸 바로 아실겁니다. 오히려 싸게 느껴져요 ㅋㅋ 밑반찬 보리밥(이었던 것)입니다. 이렇게 맛있을 줄 몰랐는데 진짜 맛있었어요. 참기름, 고추장을 넣고 비벼먹는 에피타이저인데요. (에피타이저가 보리밥 ㅋㅋ 탄수화물의 민족) 고추장의 감칠맛이 장난 아니더라고요. 진짜 맛있게 먹었습니다. (참고로 포장하면 보리밥은 주지 않아요. 아쉽..) 다른 밑반찬들입니다. 열무김치와 배추김치에요. 위에 메뉴판에도 나와있지만 둘 다 배추와 고춧가루 둘 다 국..

[Swift] NSCoding과 Codable 차이점 (상속 관계 유지하기)

NSCoding과 Codable Codable이 나오면서 NSCoding은 옛날의 그것으로 생각되었습니다. 그런데 NSCoding만이 할 수 있는 일이 있었습니다. 바로 상속 관계를 유지해서 저장하는 것입니다. Shape 부모 클래스를 상속하는 두 개의 자식 클래스가 있습니다. class Plane { var shapes: [Shape] init(shapes: [Shape]) { self.shapes = shapes } func display() { for shape in shapes { print("\(type(of: shape)): \(shape.description)") } } } let shapes: [Shape] = [ Rect(point: .init(x: 10, y: 10), size: .in..

[회고] 네이버 부스트캠프 웹・모바일 8기 멤버십 4주 차 회고 & 기술적 고민

서론 네이버 부스트캠프 웹・모바일 8기 4주 차가 끝났습니다. 네이버 부스트캠프 웹・모바일 8기 챌린지가 4주 과정이었는데 감회가 새롭네요. 개인적으로 멤버십의 시간이 더 빠른 거 같습니다. 순간순간은 챌린지가 더 빨랐는데 전체로 보면 멤버십이 순식간이네요. 이번주도 많이 힘든 주였기 때문에 핵심만 작성해보겠습니다. 오늘 포스팅에서 다루지는 않지만 8기의 채용 연계 설명을 듣고 정신적으로 많이 힘들었네요. 과정을 마쳤을 땐 취업을 해서 기쁜 마음으로 썰 풀 수 있었으면 좋겠습니다. 피그마 너무 편함 지금까지는 그림을 손으로 그렸습니다. 구조 그림도 손으로 그리다보니 수정이 발생했을 때 보기 힘들어지더라고요. 그래서 리드미를 잘 작성하는 분들께 조언을 구했는데 다들 피그마 혹은 피그잼을 추천해주시더라고요...

[회고] 네이버 부스트캠프 웹・모바일 8기 멤버십 3주 차 회고 & 기술적 고민

서론 이번 3주 차는 정말 너무너무 힘들고 어려웠습니다. 다형성이 어렵다고 생각은 했는데 이 정도일 줄은... 이번 회고도 쓸까 말까 고민했는데 짧게라도 남기기 위해 작성합니다. 이왕 시작한 거 빼먹으면 아쉬우니까요. 프로토콜과 다형성 Swift의 POP와 객체지향 OOP 사이에서 고민하는 주차였습니다. 특히 프로토콜에 프로퍼티를 넣는 것은 객체지향에 어긋나느냐? 하는 주제로 다른 캠퍼들과 의견을 나눴던 거 같아요. 1. Swift의 프로토콜에는 프로퍼티를 넣어도 자연스럽다. 프로토콜에 프로퍼티를 넣지 않으면 getter/setter 메서드를 넣어야 하는데 이건 Swift 스럽지 않다. 2. 프로토콜에 프로퍼티를 넣으면 객체지향의 캡슐화, 은닉화가 약해진다. 따라서 최대한 프로퍼티를 넣지 말아야 한다. ..

[Swift] 구조체와 클래스의 Property Observer 동작 차이 (짧은글)

Property Observer Property observers observe and respond to changes in a property’s value. Property observers are called every time a property’s value is set, even if the new value is the same as the property’s current value. Property Observer는 프로퍼티의 "값"이 변하면 호출됩니다. 여기서 "값"의 의미때문에 구조체와 클래스의 프로퍼티 옵저버 동작 차이가 발생합니다. struct StructA { var value: Int = 0 } class ClassA { var value: Int = 0 } var struc..

[Swift] OptionSet 알아보기

OptionSet OptionSet은 비트 마스크를 이용해 여러 옵션을 다룰 때 채택하는 프로토콜입니다. 프로토콜이지만 이름에 Set이 붙은 거처럼 분류도 Collections로 되어 있고, intersection, union 등 집합 메서드도 사용할 수 있습니다. (이건 아래에서 더 자세히 알아볼게요.) OptionSet이 낯설 수 있는데요. 생각보다 많은 곳에서 사용됩니다. 대표적으로 UIView.AnimationOptions, UIView.AutoresizingMask가 있습니다. OptionSet 사용법 struct ShippingOptions: OptionSet { let rawValue: Int static let nextDay = ShippingOptions(rawValue: 1

[iOS] WWDC21 테크톡 - Find and fix hitches in the commit phase

서론 WWDC21 테크톡 - Find and fix hitches in the commit phase에서는 Commit phase의 hitch를 찾고 고치는 내용을 다룹니다. hitch와 commit phase가 무엇인지는 WWDC21 테크톡 - Explore UI animation hitches and the render loop를 확인해 주세요. What is a Commit Transaction 터치 이벤트를 받으면 UI를 업데이트하게 됩니다. 시스템은 레이아웃이나 디스플레이 변경이 필요한 서브 뷰들을 기록합니다. 그리고 다음 Commit phase에서 시스템에 의해 draw와 layoutSubviews가 호출되면서 업데이트 됩니다. Commit Transaction은 4단계로 이루어집니다. lay..

WWDC/iOS 2023.09.10
반응형