본문 바로가기

전체 글

[리뷰] 비슷한 고민, 탁월한 대응 <처음부터 제대로 배우는 라라벨> 먼저, PHP가 아니더라도 절차적 프로그래밍만 하셨다면 조금 낯설 수 있습니다. 다른 언어의 프레임워크를 사용해 보았다면 라라벨을 알아가는데 꽤 많은 도움이 되리라 생각합니다. 이렇게 하면 될 것 같다고 생각했던 아이디어들을 이미 구현해 놓았습니다. 많이 사용하는 기능은 기본 기능을 제공합니다. 변화하는 사용 환경에 적절하게 대응하고 있습니다. 예를 들어, 인증은 대부분의 웹 애플리케이션이 필요로 하지만 여러 가지 생각해야 할 부분이 많은 기능입니다. 그래서 라라벨 6까지는 이러한 기능의 뼈대를 잡아주는 인증 스캐폴딩 기능이 내장되어 있었다고 합니다. 하지만, 최근에는 React나 Vue 같은 프런트엔드 프레임워크 사용이 많아져 인증 스캐폴딩 기능이 별도의 패키지로 분리되었고, 필요하면 추가로 설치하여 .. 더보기
[리뷰] 익숙한 것과 거리 두기 <스위프트 프로그래밍 3판> 비슷한 게 많을수록 다른 점도 많이 보인다. 예전에 우연찮게 봤던 오브젝티브-C 코드, 익숙한 분은 사용하는데 크게 어려운 게 없는 것처럼 말씀하셨지만, 복잡하지 않은 실행문조차 너무 거창하게 느꼈습니다. 개발하신 분의 코딩 스타일을 떠나서 언어 구문 자체가 사용하기에 만만치 않겠다는 느낌이었습니다. 스위프트 프로그래밍을 보면서, 그때 보았던 오브젝티브-C에 비하면 스위프트는 아주 심플하다는 느낌을 받았습니다. 스위프트를 읽어 나가면서 언어 설계자는 아마도 ... - null 때문에 고생을 많이 했다. - 비동기 처리하기 너무 불편해했다. 라는 생각이 들었었습니다. 다른 언어에서 아쉬웠거나 불편한 부분을 해소하는 스위프트만의 방식을 만날 수 있습니다. 개발의 편리함을 추구하다 너무 많은 것을 넣어버린 느.. 더보기
[리뷰] 느슨하게? 유연하게! <쉽게 배워 바로 써먹는 디자인 패턴> 디자인 패턴. 유명하지만 실제로 읽어본 사람을 만나는 게 쉽지 않은 고전처럼, 많이 들어 봤고 몇몇 패턴은 실제로 사용하지 있지만 24개 패턴을 모두 접해본 사람은 많지 않다고 생각합니다. 많은 경우 몇 가지 패턴 사용에 익숙하다고 생각합니다. 자신이 사용하는 코드가 디자인 패턴에 분류되어 있는지 모르더라도 말이죠. 왜 그렇게 사용하지는 어렴풋이 알고 있고, 어떻게 사용하지는 알고 있으며 잘 쓰고 있는 겁니다. 우리는 자신을 계발하고자 하는 욕구가 있습니다. 좀 더 나아지고자 합니다. 경험을 통해 앞으로 나아가지만 한편으로는 늘 아쉬움을 느낍니다. 그래서, 다른 사람들은 어떻게 하고 있는지, 내가 사용하는 방식이 맞는지, 모르는 부분은 어디인지, 조금 더 잘하려면 어떻게 해야 하는지 알고 싶어 합니다. .. 더보기
[리뷰] 딥러닝에 발 담그기 <처음 시작하는 딥러닝> '첫 술에 배부를 순 없다.' 는 말이 있습니다. 그렇더라고 첫 술이 맛있으면 나머지도 더 잘 먹을 수 있지 않을까요? 이 책을 통해 딥러닝에 가까워지는 시간을 만날 수 있다고 생각합니다. '딥러닝을 씹어먹고 말리라' 같은 결연한 의지는 잠시 접어두시고, 딥러닝이 어떻게 생겼는지 안내하는 저자를 따라가는 것만으로 충분히 좋은 시간이 될 수 있을 것입니다. 그림을 보여주며 설명하고, 수식으로 표현한 뒤, 코드로 구현해 보는 방식을 취하고 있습니다. 딥러닝이 처음인데 그림 몇 개로 이루어진 설명, 설명을 표현한 수식, 수식을 실행하기 위한 코드를 보는 것만으로 모두 이해할 수 있으면 천재이지 않을까요? 그러니 너무 부담 갖지 않고 읽으셨으면 하는 마음입니다. 책에 있는 수식을 보며 겁먹을 것도, 모두 이해할.. 더보기
[리뷰] 실력 좋은 선배 같은 <실전 자바 소프트웨어 개발> 실무에서 자바로 소프트웨어를 만들 때, 어떻게 만드는지 그리고, 디자인 패턴과 SOLID 원칙이 왜 필요하고, 어떻게 적용하는지 보여줍니다. 자바로 단순하게 코딩하는 수준이 아니라 자바를 이용하여 소프트웨어를 어떻게 개발하는지 보여줍니다. 말하자면, 덧셈과 곱셈 알고 단순 계산을 열심히 반복하는 수준에서 벗어나 연산의 원리를 이해하고 활용하는, 지금까지 알던 것과 다른 시야를 만나게 해 준다고 할까요. 1에서 10까지 더하는 문제로 비유해 보겠습니다. 처음에는 단순 덧셈을 떠올립니다. 덧셈을 10번하면 되니 큰 문제는 아닙니다. 하지만, 이런 상황은 곧 어려움에 부딪칠 수밖에 없습니다. 요구 사항은 바뀌니까요. 단순한 해결에서 한걸음 나아가 1, 2, 3, …, 9, 10 10, 9, 8, …, 2, 1.. 더보기
[리뷰] 불확실성에 대응하는 프로그래머의 자세 <고전 컴퓨터 알고리즘 인 파이썬> 불확실성에 대응하는 프로그래머의 자세 문제를 보여주고, 적절한 알고리즘을 소개하며, 어떻게 구현하는지 보여주는 방식에서 벗어나 있습니다. 특정 알고리즘에 집중하고 있습니다. 이런 게 있다는 식으로 여러 알고리즘을 나열하지 않습니다. 키워드는 재귀, 검색, 제네릭, 탐색, A* 1장에서 재귀를 이용해 알고리즘이 고정된 틀이 아니라 계속 발전한다는 걸 보여줍니다. 2장 제목은 검색 문제입니다만, 정작 익히 알려진 검색 알고리즘은 언급도 하지 않습니다. 제네릭과 휴리스틱이 등장합니다. 제네릭은 다양한 프로그래밍 언어에서 지원도 하고 많이 대중화되었다 쳐도, 휴리스틱이라니. 어떻게 보면 컴퓨터와 어울리지 않는 단어이기도 하고 알고리즘과는 더더욱 상관이 없어 보이는 용어가 등장합니다. 컴퓨터가 어림짐작이라… 그렇.. 더보기
[리뷰] 입문자를 위한 수준 맞춤 개인 교습 <이것이 안드로이드다 with 코틀린> 백과사전처럼 모든 걸 나열하지 않습니다. 시작하는 이들이 알아야 하는 내용 가운데 우선순위가 높은 걸로 선별한 것 같습니다. 실제 출시할 수 있는 수준의 앱을 만들지 않습니다. 완성도 있는 앱을 그저 따라 하기보다 앱을 구성하는데 필요한 내용들을 하나씩 이해하며 앱을 만드는데 익숙해지도록 하고 있습니다. 개념을 설명하고, 앱을 만들어 앞서 설명한 내용을 어떻게 적용하여 사용하는지 보여줍니다. 균형을 잘 잡았다고 생각합니다. 강의를 기반으로 만들어졌기 때문인 듯합니다. 설명에 매몰되는 부분이 없습니다. 설명을 하다 보면 뜻하지 않았지만 점점 깊이 있는 내용으로 흘러가는 경우가 생길 수 있습니다. 설명을 접하는 이는 어느 순간 이해나 흐름을 놓치게 되고 그 이후 진도가 느려지거나 학습을 멈추게 됩니다. 설명.. 더보기
[리뷰] 늘 곁에 두어야 할 <리팩터링 2판> 내용은 시스템이나 프로세스가 아닌 사람을 바라보고 있습니다. 그렇기에 안타깝게도 정량화할 수 없습니다. 프로그래밍을 하며 아직 리팩터링을 접하지 못했다면 머지않아 만나게 되고, 만나야 할 내용입니다. 읽어가면서 세 가지 상황을 만날 수 있습니다. 첫째, 프로그램을 만들면서 이래야 할 것 같아 사용하는 자신만의 방식을 리팩터링 기법 가운데 만나면 반가울 것입니다. 내 생각이 틀리지 않았다는, 나와 비슷하게 생각하는 사람이 있다는 사실에 마음 한구석에 남아있던 불안을 떨쳐버리고 미소 지을 수 있습니다. 그러고 보면 사람은 소속을 갈구하는 존재인가 봅니다. 자신은 아니라고 부인할지 모르지만 미지의 세계로 걸어 들어갈 때 누군가 앞서간 발자취를, 하다못해 동물이 지나간 흔적이라도 발견하면 안도의 한숨이 저절로 .. 더보기