본문 바로가기

pop

POP 프로젝트에 적용하기 OOP에서 POP를 적용하면서 느꼈던 새로운 관점을 나누고 싶어서 정리했습니다. 처음 작성해본 POP이기 때문에 "이렇게 작성해야 POP야"가 아닌 "이런 방식으로도 생각했구나"라고 봐주셨으면 좋겠습니다. 코드 스쿼드를 졸업하고, 완성하지 못한 부분이 자꾸 아쉬움이 남아서 IssueTracker를 구현하고 있었습니다. 콤바인을 원하는대로 구현할 수 있다는 자신감, 재사용성을 충분히 생각했다는 자만감에 빠져있어서 코드의 품질은 좋다고 생각했었습니다. 하지만 부엉이 말 한마디에 부족한 부분이 보였고, Protocol에 대해서 공부하다 보니 새로운 접근을 할 수 있을 거 같아서 시작하게 되었습니다. 아래 그림을 보면 Label 화면과 MileStone 화면의 구성은 완벽하게 일치하고, UITableView C.. 더보기
POP Swift 2.0으로 업데이트 되면서 Swift는 Protocol Oriented Programming라고 발표했다. 많은 Protocol이 생겼고, 구조체와 클래스에서 프로토콜을 채택하고, 클래스 상속에서 받지 못했던 이점을 챙겼다. 왜 OOP에서 POP로 변경된 건가? OOP는 클래스를 기반으로 상속을 통한 유연함을 유지했다. 하지만 상속은 생각보다 유연하지 못했다. 추상화된 클래스를 구체화했을 때 공통적인 책임을 갖는 여러 클래스가 존재할 수 있고 중복된 코드가 생성된다. 참조 타입을 사용하면서 발생하는 문제들(멀티 스레드 환경에서의 다중 접근, 동적 할당과 참조 카운팅으로 인한 자원 소모)이 있다. 위와 같은 문제점을 해결하고자 Swift 2.0에서는 Protocol + Extension + Ge.. 더보기