
개념 정리
KPT란?
Keep: 이번 챕터에서 진행한 과정 중 다음에도 유지했으면 하는 부분.
이번주 진행하면서 이건 진짜 잘했다! 자랑할 만한 요소.
다음주에도 유지한다면? (기술, 의사소통 어떤 것이든 좋아요!)
Problem: 이번주 진행하면서 겪은 문제점, 어려웠던 점
해결 방안 : 해당 문제점을 해결할 수 있는 현실적인 방안 제시
Try: 이런 시도도 해보면 좋지 않을까?
다음 주를 위한 노력은?
Feel: 이번 챕터에서 느낀 점
Project Topic: 한 페이지 안에 모바일 키오스크 구현하기
Project Name: iMacDonald
Project Period: 11/25 ~ 11/29 12:00
Wire Frame: 🔗Figma
iMacDonald?
i 접두사는 apple의 네이밍 컨벤션을 연상시킴 (iPhone, iPad, iMac 등)유지했으면 하는 점: 협업을 위한 적극적인 소통, 매일 스크럼을 통해 각자 하루 일과에 대한 보고 및 상호성장을 도모.
잘한 점: GitFlow와 브랜치전략, 커밋 전략 등 프로젝트 시작 전 Git에 대해 상세한 내용을 정하고 실행한 점
문제점: 일주일이라는 짧은 시간에 적응하지 못하고 프로젝트 스케줄을 제대로 지키지 못함 점
해결방안: 프로젝트 제작에 들어가기에 앞서 서로간의 실력, 구현 난이도 등을 고려하여 현실적인 스케줄을 작성하고, 매일 프로젝트 진행정도를 확인하며 세부조정을 이어나간다.
아쉬운 점: 다른 조의 발표를 보고 UI/UX 디자인에서 좀 더 다양한 아이디어를 받고 다양한 시도를 해볼 수 있었을텐데 과제에서 주어진 구현목표만을 목표로 잡은 탓에 틀에 갇힌 앱 제작을 진행한 것 같다.
느낀점: 협업과 팀워크의 중요성, 계획, 구성, 기획 등의 중요성 즉, 협업을 할 때 필요한 것과 불필요한 점에 대해 알 수 있었고, 내게 부족한 점은 무엇인지 깨닫게 되었다.
make.height.equalToSuperview().multipliedBy(0.6)
layer.borderColor가 동적으로 업데이트 되지 않는 문제가 발생// MARK: - Dark Mode Handling
/// 다크모드 변경 감지 시 호출되는 메서드
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
if self.traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
updateBorderColor()
}
}
/// 테마에 따른 테두리 색상 업데이트 메서드
private func updateBorderColor() {
self.layer.borderColor = UIColor(named: "CardViewShadowColor")?.cgColor
}
/// iOS 17 이상에서 테마 변경 감지 설정 메서드
private func registerTraitChangeHandler() {
if #available(iOS 17.0, *) {
registerForTraitChanges([UITraitUserInterfaceStyle.self]) { (self: Self, previousTraitCollection: UITraitCollection) in
self.updateBorderColor()
}
}
}
cart.remove(at: row) // 삭제 액션 실행시 배열에서 인덱스 제거
// 테이블뷰에서 제거한 행을 삭제
tableView.deleteRows(at: [IndexPath(row: row, section: 0)], with: .none)
UIColor.systemBackground로 사용하거나 Asset에서 색상을 정의하여 사용height를 0으로 설정하고 셀이 업데이트 될 때만 height 값이 늘어나도록 설정 -> height 값이 계속 0으로 고정되어 테이블뷰가 터치되지 않는 문제 발생Hidden으로 설정하고 셀이 추가될 때만 보이도록 설정 -> 테이블뷰 셀이 1개일 때도 테이블뷰 영역 전체가 메인뷰에 영향을 미쳐 스크롤되지 않는 현상 발생hitTest메소드를 활용하여 테이블뷰의 셀이 비어있지 않을 때만 터치가 가능하도록 설정. /// 터치 이벤트 처리를 위한 메서드
/// 테이블뷰 영역 외의 터치는 무시하도록 구현
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
guard !tableView.frame.contains(point) else {
return super.hitTest(point, with: event)
}
return nil
}
일주일 간의 프로젝트... 크고작은 일들이 있었지만, 무척 충실한 일주일이었다고 생각한다.
개인적인 실력 향상과 협업에서 성장하는 나 자신을 볼 수 있었던 것 같다.
실제 회사에서도 협업을 중시하니, 이런 과정들을 통해 더더욱 회사가 바라는 개발자로 성장할 수 있으리라고 믿는다.
내일도 힘내자