Refactoring 리팩토링
국내도서
저자 : 마틴 파울러(Martin Fowler),켄트 벡
출판 : 대청미디어 2002.03.15
상세보기


 코드 품질과 객체지향에 관심이 많거나, 협업의 환경에 있다면 읽어볼 만한 추천 책이라고 생각합니다. 


 서점에서 코드 품질과 설계 관련 책을 찾다가 발견한 책. 첫인상은 글씨크기라든지, 코드 부분이 많아서 좀 딱딱한 책으로 느껴졌는데, 막상 읽기 시작하니 생각보다 술술 읽히더군요. 대부분의 내용이 평소에 코딩하면서 들던 생각들이라 그런거 같네요. 그렇다보니 일부 내용들은 뭐야 당연한 얘기잖아? 하면서 스르륵 넘어가더라고요. 물론 생소한 부분에서는 여러번 읽어야되서....한참 걸리지만. 그리고 아무래도 책의 구성 자체가 수정 전, 수정 후의 코드를 다 보여주면서 중복된 코드들이 생기다보니 겉으로는 책이 두껍다고 느껴지는데 막상 읽으면 그렇진 않더라고요. 친절함 측면에도 좋고,,


 말이 길어졌는데 어찌됐든 위의 추천분들 외에도 객체지향 환경에서 일한다면, 한 번은 찬찬히 읽어보기 좋은 책 같습니다. 평소 코딩하면서 무질서하게 생각하고 있던 것들, 뜬구름처럼 애매모호한 부분들을 체계적으로 정리해주고, 대응법과 노하우를 알려주는 책이다보니, 생각을 조금씩 정리할 수 있게 해줍니다. 약간 읽으면서 불편했던 점은 내용 구성 중 리펙토링을 하는 방법과 같이 글로 설명하는 부분에서는 용어 부분에서 많이 헷갈리는 측면이 있습니다. 클래스를 새로 만들거나 메서드를 이동하는 등의 클래스간 이동이 많다보니 간혹 의도하는게 이 클래스가 맞나 싶을 때도 있고, 용어가 많이 등장하다보니 이 용어가 뜻하는게 제가 생각하는 그게 맞는지 싶은 그런 부분도 있네요... 제가 언어쪽이 약해서 그런가... 개인적으로는 방법 부분은 훓어보고, 예제의 코드들을 먼저 보고, 다시 방법을 보는 식으로 읽었네요. 예제는 너무 단순한 감은 있지만 좋았던 것 같습니다.  


 읽으면서 몇몇 부분들은 약간 이게 오히려 비효율적인거 아닌가 싶은게 있고, 예전에 시니어분의 사상과는 충돌되는 부분들도 보이더라고요. 아무래도 이 책은 리펙토링을 다루다보니 미관/ 유지보수 측면에 무게를 많이 둔 것으로 보입니다. 책에서도 "최적화에 위배된다면, 일단 책처럼 리펙토링을 하고 최적화를 시도해라. 그러면 훨씬 수월해 질 것이다" 라는 말을 하며, 리펙토링을 우선시 하고 있죠. 무조건 책 그대로 따라하기보다는 최적화도 고려를 하며 절충적으로 연습을 해야 할 것 같아요. 저도 오늘부터 기존에 만들었던 코드들을 다시 리펙토링하는 연습을 해볼려고요. 이전에 작성한 코드들을 보니 구린내가 많이 풍기더라고요... 객체지향 언어로 절차지향 코딩을 하고 있단 소리가 이제 이해가 가기도 하고.


 마지막으로 저처럼 코드 품질에 문제를 어떻게 고쳐야할지 감 잡을 필요가 있으신분들. 객체지향에 좀 더 이해도를 높이고 싶으신 분들께 강추드립니다.

Posted by 검은거북
누워서 읽는 알고리즘
국내도서
저자 : 임백준
출판 : 한빛미디어 2015.10.20
상세보기



다양한 알고리즘을 읽어보려고 서점에 갔을 때, 목차에 알고있던 알고리즘도 있지만, 생소한 알고리즘들이 더 많아서 고른 책. 대충 조금씩만 읽어봤을 때 가볍게 읽기도 좋은 것 같았고, 강추까진 아니더라도, 가볍게 여러 알고리즘과 일화를 보고 싶거나, 입문자분들은 읽기 좋을 것 같아요. 쉬운 말들로 설명하고 일화를 더해서 설명하다보니 흥미 유발이 되거든요.


 책의 가장 큰 장점은 가볍게 읽을 수 있다는 점 같네요. 알고리즘도 알고리즘이지만, 일화를 더하면서 설명하다보니 하나의 이야기를 읽는 듯한 느낌도 들고, 책 이름처럼 누워서 읽기 좋을만큼 내용은 가볍습니다. (물론 중간중간 알고리즘에 대해 설명할 때는 쭉~ 생각을 해봐야하지만...)  근데 목차를 볼 땐 몰랐는데 막상 읽다보니 알고있던 알고리즘이 많더군요. 그리고 일부 소수의 알고리즘은 너무 설명이 빈약하다 싶은 것도 있더라고요..ㅜㅜ 그렇다하더라도 생소한 내용도 여럿 있고, 몰랐던 내용들도 알 수 있어서 좋았습니다. P를 출력하는 프로그램 P 같은 경우는 개인적으로 "오잉?" 하면서 신기하게 읽었고, 개인적으로 스택오버플로우 때문에 재귀를 별로 안좋아하는데 재귀의 단점을 보완할 수 있는 방법도 제안을 해주는 등 흥미로운 내용들이 많습니다. 




Posted by 검은거북


게임 프로그래밍 패턴
국내도서
저자 : 로버트 나이스트롬 (Robert Nystrom) / 박일역
출판 : 한빛미디어 2016.06.01
상세보기



최근에 코드를 짜면서 항상 뭔가 불만스럽고, 유지보수 측면이나, 세련됨? 같은 게 부족한 느낌이 많이 들었습니다. 객체지향을 제대로 활용하고 있는가하는 의구심도 들고, 그래서 설계나 리펙토링 측면에서 관련 도서를 찾다가 아는 형에게 추천받아 읽게 된 책입니다.


개인적으로 대만족입니다! 기존에 알고있던 패턴이래봤자 싱글톤, 감시자, 상태, 객체 풀 패턴 정도인데, 좀 더 다양한 패턴, 알고리즘, 자료구조, 발상을 접해서 설계시나 코딩시 고려요소를 늘리고 싶었거든요. 딱 원하던대로 입문하기에도 좋고, 중간 중간 심화 알고리즘을 제안해주어 파고들기도 좋은거 같습니다. 특히 접해보기 힘든 동떨어진 예시가 아닌 게임의 시스템을 기반으로 이야기를 하다보니 더 이해하기가 좋았던 듯 싶네요. 저처럼 디자인 패턴에 쉽게 입문하면서 다양한 발상을 접하고 싶고, 심화 알고리즘도 리스트업하고자 하시는 분들께는 강력 추천드립니다.


 다만, 바이트코드나 공간분할 등의 생소한 패턴들은 아직 익숙하지가 않고 머리 속에 "이 때는 이걸 활용해야겠군" 하는 개념이 잡히질 못한 느낌이여서 몇 번 더 보면서 활용을 해봐야 할 듯 싶네요. 아무래도 익숙해져야 필요할 때 딱딱 떠오를테니... 그리고 패턴에 대해 많이 무지했다고 느낀게 기존에 무심코 사용하던 방법들이 별도로 패턴이라는 이름으로 정의되어 있더군요. 무작정 목적을 위해 구현했던 것보다는 당연히 책에서 제시하는 방법들이 훨~씬 세련됐지만.... (그만큼 내공이 부족한거겠죠)


 덤으로 요즘에는 상속보다는 조합이 대세라는 식의 다른 프로그래머들은 어떻게 생각하는지 동향? 같은 것도 알 수 있어 좋았습니다. (개발자들은 이런 정보를 어디서 얻는 걸까요? 컨퍼런스 같은데 가면 알 수 있나? 발표자가 얘기했다고 대세라고 생각할 수 있나? 흠...) 컴포넌트 패턴이나 업데이트 패턴 같은 언리얼, 유니티 엔진의 근간을 이루는 패턴들의 발상과 구현도 다루어주고, 주석으로 여러 관련 사이트와 코드들을 던져주는 것도 좋았는데, 다만 이 사이트들은 어쩔수 없겠지만 영어라는 점이 ㅠㅠㅠㅠㅠㅠ (읽는데 한 세월이겠네)  매번 알고리즘이나 자료구조, 이번엔 패턴을 접하면서 느끼는거지만 세상엔 참 똑똑하신 분이 많은 것 같네요. 한정된 방법들로 발상과 아이디어를 코드화 시켜서 다듬어 낸다는게 참 대단한 것 같네요. 



 위 책을 사면서 리펙토링 (저자: 마틴 파울러) 책을 같이 샀는데, 첫번째 읽은 책이 대만족이다보니 이 책도 기대가 되는 한편, 용어들 때문에 살짝 두렵네요. 비교적 글이 적은 게임 프로그래밍 패턴에서도 글보다는 코딩 몇 줄을 보는게 더 이해하기 좋아서 빨리 코드보기를 기다렸거든요. 엮은분이 주석도 달아주시면서 잘 번역해주셨지만 개인적으로는 능력부족으로 용어들이 단 번에 연결되지 않을 때가 있어서 여러번 다시 읽어보고 이해해야 했는데, 리펙토링은 어떨런지...

Posted by 검은거북
이전버튼 1 이전버튼

블로그 이미지
프로그래밍 공부 요약 및 공부하며 발생한 궁금증과 해결과정을 포스팅합니다.
검은거북

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함