제출해야 할 것결과물에 대한 소감
발표 자료
간략하게 작성해도 됩니다.
중요한 것은
기능 분담 이름
각 화면 구현 중 어려웠던 점, 고민했던 점 &
🌼 각 화면 구현 중 스스로 해결했거나 특별했던 경험
박채현: MemberView
뷰에 대한 개념을 이해하지 못했는데 결국 안드로이드와 말하는 것만 다르지 결국 비슷한 매커니즘으로 작동했다. 처음에는 유튜브 하면서 따라가다가 반복되는 것을 보고 알아차린 후에는 코드가 읽히기 시작했다.
박시연: MemberDetailView, TempView

해당 뷰는 간단하게 CollectionView에 scrollVIew를 붙여서 작성할 생각이었으나 새로운 시각으로 compositionalLayout을 사용하였다. but, compositionalLayout은 같은 cell의 모양이 반복되는 UI에 최적화? 되어있다는 또다른 의견을 들었으나..이미 되돌아갈수 없는 강을 건넌 후였다..! 최대한 기존 UI 를 가져가고 CollectionViewCell 을 활용하였다.
UI 는 접근성이 그나마 쉬워보이는 storyboard로 하려고했으나 맥북 용량의 한계로 코드로 진행하였습니다.
class 앞에 final을 붙이는 이유!
final class MemberDetailViewController: UIViewController {
let imageView = UIImageView()
var selectedMember: EvenMember?
→ 다른 클래스가 final 이 붙은 class 를 상속할 수 없도록 하기위함입니다.(상속으로 인해 기존 클래스 동작이 변경되지 않게 안정성을 위하여 사용합니다.) → 컴파일 시 성능 개선을 위함입니다.
lazy var collectionView: UICollectionView = {
let layout = createCompositionalLayout()
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
collectionView.translatesAutoresizingMaskIntoConstraints = false
return collectionView
}()
→ Member cell에서 탭하면 생성되는 화며으로 미리 초기화할 필요가 없어서 사용하였습니다. 객체 생성 순서를 좀더 유연하게 관리하거나 순환 참조 문제를 피할 수 있다는 장점이 있습니다.
각 화면을 맡아서 진행하고 있고, PageViewController라는 부모뷰 안에 모든 뷰가 포함되어있기때문에 코드 작성 후 빌드 확인이 어려운 부분이 있었습니다. 그래서 임시 TempViewController를 만들어서 버튼을 입력하고 각각 화면이 이동되도록 하여 현재 이슈나 적용화면을 보면서 작업하기 편하게 적용하였습니다.
황도일: LaunchScreen, IntroductionView
박민석: GoalView
나영진: PromiseView
기초 문법만 아는 상태였기에 프로젝트를 잘 따라갈 수 있을지 두려웠으나
뭐라도 해보려고 하였고 튜터님의 말씀에 따라 재사용이 가능하도록 테이블 뷰를 구성해보려고 하였다.
모든 것이 어려웠으나 하나씩 찾아가며 작성하다보니 끝까지 할 수 있게 되었다.
장상경: MainView
느낀 점, 앞으로의 각오
박채현: MemberView
무조건 스토리보드로 만들어야 하는 줄 알아서 막막했는데 코드로 짜니 속성값 주는 것도 편하고 재미있었습니다. 겁을 먹는 바람에 쉬운 화면을 만들고 싶었는데 다음 프로젝트에는 조금 더 난이도 있는 화면을 만들어서 문제가 생겨서 해결하는 즐거움을 느끼고 싶습니다.
박시연: MemberDetailView, TempView
시간이 촉박하게 느껴져서 코드리뷰나 조금더 심도있는 고민을 못했던 점이 아쉽습니다. 팀 프로젝트로 Git 협업을 처음해봤는데 매 순간 처음 겪는 내용이라 팀원들께 계속 질문하느라 미안하고 고마운 마음이 컸습니다!
황도일: LaunchScreen, IntroductionView
Git을 공부해둬서 다행이었다. 스토리보드는.. 공부를 안해둬서 힘들었다. 런치스크린과 소개뷰 모두 구현할 기능이 단순했는데, Xcode를 사실상 처음 만지다보니 그렇게 쉽지는 않았다. 프로젝트에 대한 공헌도는 내가 구현한 기능들보다도 Git의 문제 해결이나
박민석: GoalView
간단한 자기소개 앱이었지만 내가 생각한 것보다 훨씬 난이도가 높았다. xcode로 swift 코드를 작성하는 것도, git을 사용해 팀원들과 작업 상황을 공유하는 것도, 매일 하루에 12시간 이상씩 화면을 들여다보며 앉아있는 것도 힘들고 어려웠다. 그럼에도 서로 존중하며 소통하고 어려움을 같이 고민하며 프로젝트를 완성한 경험 덕분에 그 과정들이 즐겁고 보람차다고 느꼈고 중도에 포기하지 않는 힘이 된 것 같다.
나영진: PromiseView
팀원분들의 많은 도움 덕분에 앞으로의 개발자가 되기 위해
한 발짝 나아갈 수 있는 기회가 되었던 것 같다.
하지만 아직 배워야 할 게 너무 많아 시간을 열심히 투자해야 할 것 같다고 몸소 느끼는 중읻.
장상경: MainView
프로젝트를 시작하기 전에는 UIKit이 너무 큰 벽이고 어렵게 느껴졌는데, 막상 해보니 그 나름의 매력과 재미를 느낄 수 있었다. 깊이 팔 수록 매력이 있지만, 그만큼 많은 것을 알아야 하고 어렵다고 생각했다. 내가 어디까지 할 수 있을지 모르겠지만 UIKit을 완전히 내 것으로 만드록 싶다고 생각했다.
프로젝트 결과물(github)