1. 문제 해결
1.1 상황
코드베이스 UI인 내 페이지에서 스토리보드 기반 페이지인 팀원분의 페이지로 네비게이션 이동해야 했는데, 모든 IBOutlet이 런타임에 nil로 잡히던 현상이 있었다.
해당 문제만 보면 기존 가끔 생겼던 스토리보드 단골 오류인 연결에 무언가 버그가 생겼거니 하며 모든 연결을 끊고 다시 연결하는 등 이런저런 시도를 해보며 print 함수로 단계별로 nil인지 찍어봤다. 달라지는 건 없었고 모든 컴포넌트에 대해 nil이라는 답이 돌아왔다.
1.2 해결 방안
스토리보드로 정의된 UI에 대한 뷰, 페이지에 연결하려면 그냥 코드 베이스에서 쓰던 방식대로 하면 안된다.
let vc = ViewController(); self.navigationController?.pushViewController(vc, animated: true)로는 스토리보드 측 연결을 보지 않는다고 할 수 있는 것이기 때문에 스토리보드부터 접근을 해줘야한다.
let storyboard = UIStoryboard(name: "TeamMemberList", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "TeamMemberList")
self.navigationController?.pushViewController(vc, animated: true)
코드 중 일부를 따왔는데, 스토리보드에서 identifier로 정의해둔 문자열을 가져다가 변수에 담고 해당 스토리보드에 대한 변수를 instantiateViewController해주어야 뷰컨트롤러를 온전히 받아올 수 있다.
스토리보드에 대한 고려가 없었기에 연결이 끊겼던 것 같다.
2팀 KPT 회고
Keep Problem Try
1. 한 주의 흐름
- 한 일
- 프로젝트 명: 소개팀
- 필수 작업: 테이블뷰를 활용해 필수 UI 구성, 셀 커스텀 하여 데이터 바인딩, 필요에 따라 웹뷰 적용
- 추가 작업: 유저 모델을 이용한 데이터 바인딩
- 느낀점
- 규섭 - 코드 베이스 UI 구현 방식을 지금까지 고수해왔던 터라 팀원분들의 스토리보드 방식에 협업에 있어 어떻게 접근하면 좋을지 생각해보았고 이에 어려움을 느꼈지만 성공적으로 마쳤음에 좋은 경험을 했다는 생각입니다. 깃과 깃허브를 둘째날부터 바로 써보기로 하여 팀원분들께 이를 알려드리고자 전날 공부하고 후에 정리해서 발표하는 과정이 스스로 개념을 정리하는 데에 도움이 많이 되었습니다. 나아가, 협업 과정 중 Conflict를 해결하면서 충돌 난 파일이 어떤 파일인지 알 수 있었고 이를 해결하려면 어떻게 해야하는지 다양한 경험을 할 수 있어서 좋았습니다. 열정 넘치는 팀원분들이 질문도 많이 해주셔서 동기부여를 받음과 동시에 기존에 알던 개념들을 정리할 수 있는 좋은 기회였습니다.
- 다성 - 시간이 부족하면 팀원들과 회의 후 작업이 가능한 영역이 어디까지인지 확인하고, 우선순위에 따라 작업해야한다는 것을 느꼈습니다. 또한, UI나 Label에 제약을 추가할 때는 제약의 목적을 명확하게 고민하고 추가해야한다는 것을 배우게 되었습니다. 팀 협업을 하기 전에, 초기 세팅을 어떻게 할 것인지 회의를 하고 정리한 다음 프로젝트를 해야한다는 생각이 들었습니다.
- 노훈 - 생각보다 예상한 화면을 코드로 구현하는게 어려웠고, 팀원들과의 소통으로 작업이 더 수월해지고 모르는것을 많이 배워갈 수 있어서 좋았습니다. 또 제가 어떤 부분에서 약한지 알수있었고 협업에 필요한 git과 fork 툴의 사용법도 배우게 되어 좋았습니다.
2. Keep
- 하루 세 번 스크럼을 통해 진행 상황 공유 및 계획
- 문제점을 함께 해결하고 성장해야 한다 !!
- 머지하기 전 미리 커밋해두기
- 커밋 컨벤션 되도록 지켜보기
3. Problem
- 문제
- git hub 연동, 이어서 Conflict 발생
- 스토리보드와 코드 베이스 간의 연결 문제
- 코드 구조화 문제
- 스토리보드를 활용한 오토레이아웃 설정
- 테이블뷰, 컬렉션뷰 셀 관련 커스터마이징의 어려움
- 이미지뷰 radius 적용에 관한 문제
- 원인
- 경험 부족
- 스토리보드에 이어 pbxproj 파일에 오류가 이어짐
4. Try
- Github를 이용한 다양한 상황을 두려워하지 말고 직면하여 해결해보기
- 뷰에 대한 레이아웃을 다양하게 시도해보기
- 하루 세 번 스크럼을 통해 진행 상황 및 어려운 점 공유
- 스토리보드의 경우 연결 관련 버그일 수 있으므로 재연결해보기
- 테이블뷰, 컬렉션뷰의 셀 관련 설정 원리에 대해 이해해보기
- 함수로 구조화하는 방식에 대해 보고 접목해보기
프로젝트 발표까지 끝내고 회고할 겸 KPT라는 걸 작성해봤는데 여러모로 괜찮은 폼 같다.
내 블로그다보니깐 솔직하게 내 소감을 써보자면,,
스타터반이어서 팀원분들이 모르는 부분이 많았고 이에 대해 알려드리는 시간이 꽤 많았는데, 모두 너무 경청해주셔서 가르쳐줄 맛이 났고 그냥 답을 얻는 데에서 그치지 않고 꼬리를 물고 질문하는 모습에 영감을 받고 동기부여까지 되었습니다.
나도 잘 모르는 부분인 Git, Github 쪽을 알려드려야 한다는걸 느꼈을땐 꽤나 아찔하고 내가 알려드려도 되는건가...? 싶었지만 캠프 시간이 끝나고 따로 학습해서 정리 후 알려드렸고 이로써 스스로 개념 정리하는 데에도 많은 도움이 됐습니다. 컨플릭트 부분에 있어서는 경험이 정말 없다시피해서 좀 두려웠던 점이 있는데, 팀원분들이랑 해결하기 전에 미리 좀 알아보고 먼저 방안을 제시하며 해결해 나갔고, 결국 해결이 되지 않는다해도 저를 믿고 따라와준 팀원분들에게 정말 감사한 마음이 컸습니다. ..
첫 주부터 이렇게 너무 좋은 팀원분들을 만나 재미있게 공부하고 작업한게 너무 운이 좋았다는 생각이 들고, 모두 너무 잘 되셨으면 좋겠다는 생각이 들정도로 사람들이 좋았어서 한편으로는 트랙을 옮기게 되어 앞으로 본 캠프에서 같은 팀으로 활동하지 못하게 된다는게 너무 아쉬웠습니다.. ㅠ
사담에서도 여러 조언을 아끼지않고 격려해주신 형님들 덕분에 캠프 전에 긴장했던 저는 없고 마음 뜨뜻하게 알려드리고 작업하던 저만 있었던 것 같은데, 저도 열심히 공부하고 성장해 형님들처럼 따뜻한 에너지를 나눠줄 수 있도록 노력해야겠다고 생각합니다 !!
이제 마스터 트랙에서 저보다 뛰어나신 분들에게 많이 배워보도록 하겠읍니다 (_ _)
'내일배움캠프' 카테고리의 다른 글
[WIL / 25.04.04] 4~5주차 KPT 회고 (0) | 2025.04.04 |
---|---|
[WIL / 25.03.21] 3주차 회고, KPT (2) | 2025.03.21 |
[TIL / 25.03.03] 소개팀 프로젝트 개발 시작 및 리뷰 (2) | 2025.03.03 |
iOS 스타터 노트 (1) | 2025.02.03 |
[TIL / 25.02.03] Swift와 iOS 생태계 과제 (4) | 2025.02.03 |