코드를 짜다보면, 어느새 얽히고 섥혀있는 내 프로젝트를 마주한다. 부지런함이 개발자의 덕목이 아닌가라고 생각될 정도로 항상 깔끔함을 유지하는 것이 참 중요하다는 생각이 들곤한다. 스파게티 코드. 무엇이고 무엇이 문제인지 알아보자.
코드의 유지보수는 매우 중요하다. 아무래도 미래에 나에게 적은 노동 시간을 줄 수도 있고, 함께 일하는 팀원들에게도 예쁨받을 수 있다. 이러한 점에서 역시 중요한 것은 코드의 품질이다. 그 중 핵심인 결합도와 응집도를 알아보자.
어느 집단이든 따라하는 가치가 있다. 가정에도 있고, 학교에도 있고, 직장에도 있다. 우리 프로그래머에게는 코드를 짜는 것이 일이기 때문에, 이 품질을 높이는 것이 가장 중요한 안건이다. 이를 위한 가치와 원칙에 대해 알아보자.
이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.
개체 지향 프로그래밍을 배우는데 있어 알아두면 좋은 내용들을 정리해본다.
모든 것을 OO로 해결할 수 있을까? 그것에 대항하는 static에 대해 알아보자.
Singleton은 디자인 패턴의 일부이다. 그럼 디자인 패턴이 무엇인지에 대해 알아보자.
디자인 패턴의 가장 첫번째인 싱글톤을 알아보자.
Java에서의 Nested Class를 알아보며, 어떻게 변화해 왔을지 한번 생각해보자.
상속은 간단하게 보면 별 문제 없어보이나, 실무적으로 보았을 때 상당히 까다로운 개념이다.
상속과 컴포지션. 무엇을 선택할지 어떻게 판단해야 하는가?
다형성은 무엇인가? 왜 중요한가?
Early Binding과 Late Binding은 성능에서 어떤 차이가 나는가? 실제로는 어떻게 사용하는가? 알게 모르게 당연하게 사용하고 있는 다형적 메서드는 무엇이 있을까?
인터페이스는 왜 필요할까? 그리고 무엇일까?
인터페이스를 사용해야 하는가? 그냥 실질적인 내용이 담긴 구현체를 사용해야 하는가?
인터페이스를 사용해야 하는가? 그냥 실질적인 내용이 담긴 구현체를 사용해야 하는가?
디자인 패턴을 배우기 전에 주의할 점은 무엇인가?
팩토리 메서드는 무엇일까? 무엇이 좋을까?
빌더 패턴은 무엇일까? 무엇을 조심해야 할까? 어떤식으로 활용하는 것이 좋을까?
Adapter 패턴으로 알려져있는 Wrapper 패턴에 대해 알아보자.
Proxy 패턴은 뭘까? 서버에서 들었던 것 같은데, 패턴으로는 어떤 의미가 있는지 알아보자.
책임 연쇄 패턴은 무엇일까?
Observer 패턴, 많이 들어봤다. GoF의 정의로 알아보자.
개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다.
예외 처리를 제대로 하지 못하는 이유는 무엇일까?
그래서 예외는 어떻게 처리하는 것이 좋은걸까?
소수설에서 태어난 다양한 주장들에 대해 알아보자.
소수설 주창중 하나인 eXtreme Programming에 대해 알아보자.