지방에서 일 하고 있어서 할 수 있는 개발 관련 스터디가 많이 없는데, 좋은 기회가 되어 온라인으로 책터디를 진행하게 되었습니다. 개발 관련 서적을 읽고, 간단하게 후기를 남기는 방식의 스터디였습니다. 적극적으로 이끌어주시는 리더님이 좋았고, 저를 포함한 팀원들의 읽고 난 다음에 책과 관련된 이야기를 나누는 것도 신선했습니다. 그리고 온라인으로 진행하는 스터디가 생각보다 큰 어려움이 없다는 것을 알 수 있게 되어 더 좋았습니다. 이번에 읽은 책은 클린 코드로, 첫 인상과 현재 느낌이 제일 다른 책이라고 말하고 싶습니다. 저는 기존 서비스를 유지보수하고, 새로운 기능을 추가하는 업무를 주로 맡고 있습니다. 남이 작성한 코드를 유지보수를 해야 할 때가 많았는데, 힘들었던 코드도 있었고, 비교적 수월하게 읽어..
순서는 읽고 있는 모던 C++ 입문 (저자 : 피터 고츠슐링) 의 목차를 따라 인상적인 내용을 기록하고 있습니다. 1. 변수타입 추론 - auto 1 2 3 4 5 int a = 0; int b = 1; auto c = a + b; printf("c = %d\n", c); cs 변수 타입을 추론할 수 있는 auto가 정말 괜찮습니다. 특히 stl 사용시 끝없이 길어지는 자료형은 auto 한번만 넣으면 깔끔하게 해결되서 특히 더 잘 사용하고 있습니다. 2. 범위 기반 for문 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include #include int main() { // std container에서 사용하는 범위 기반 for문 std::list multipleOfTwo = {1..
이전에 좋은 기회가 되서, C++ 세미나에 갔다올 기회가 있었습니다. 정말 좋은 기회였지만, 문제는 제가 모던 c++을 정말 모른다는 것.. 원래 얻을 수 있던거에 한 2 / 3정도 밖에 못 얻어온 느낌이였습니다. 사내에서 stl 사용을 지양해왔기에, 공부를 할 생각을 안했었는데, 하지만, 갔다오고 나서 느낀건, "모던 c++을 공부해야 한다..." 이 편한걸 왜 안쓰고 있었는지... 매일 매일 후회하며 요즘은 모던 c++을 공부하고 있습니다. 그래서 거창하게는 말고, 제가 여태껏 몰랐던 내용, 혹은 도움될 만한 내용들에 대해 정리를 해 보려고 합니다. 정리한 내용은 위 게시글에 링크로 남기도록 하겠습니다.
1. 템플릿 메소드 패턴오늘 포스팅하는 템플릿 메소드 패턴은 우리가 모르게 정말 많이 사용하고 있는 패턴입니다. 1) 정의메소드에서 알고리즘의 골격을 정의하는 패턴. 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의할 수 있다. (출처 : 헤드퍼스트 디자인 패턴) 간단하게 말하면 알고리즘의 틀(Template)을 만들기 위한 것입니다.전체 틀은 동일하고, 바뀌는 부분만 서브클래스에서 재정의해준다면, 실제로 코드의 중복을 크게 줄일 수 있을 겁니다.이 템플릿 메소드 패턴의 가장 흔하고 간단한 예는, std::sort의 compare 함수입니다. sort를 기본 틀이 아닌 원하는 기준으로 하고 싶..
1. 퍼사드 패턴이란?클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체. (출처 : 위키백과) 일련의 사용 방법이 복잡한 클래스들을 묶어 단순화된 인터페이스를 구현해서 사용하기 쉽게 만들 수 있는 패턴입니다.실제로 구현을 해 놓은 것을 보면 확인할 수 있겠지만, 매우 단순한 패턴입니다. 하지만, 이 퍼사드 패턴의 특징으로 인해 서브시스템의 연결성이 줄어들 수 있고, 최소지식원칙을 지키는데 큰 도움이 됩니다.그림으로 보면 매우 쉽게 퍼사드 패턴에 대해 이해할 수 있습니다.복잡한 서브시스템 클래스를 퍼사드 클래스가 묶어 가지고 있어 클라이언트 쪽에서는 서브시스템들의 복잡한 동작을 생각할 필요 없이 퍼사드 클래스에 명령만 하면 원하는 동작을 실행시킬 수..