Creative Selection 표지

Ken Kocienda, Creative Selection, St. Martin's Press, 2018

애플에 일하며 진행한 프로젝트를 일화처럼 이야기하며 애플 내에서 어떤 방식으로 개발 프로세스가 진행되는지 풀어간 책. 프로그래밍을 깊게 알지 못하더라도 일상적인 용어로 쉽게 풀어서 설명하는 과정이 인상적이다. 단순하게 애플의 문화를 설명하는 것 이외에도 프로덕트를 개발하는 과정이 어떤 흐름에서 이뤄지는지 설명하고 있어서 IT 직군에 대한 궁금증이 있다면 재미있게 읽을 수 있다.

iOS 기기 개발 초기는 어땠나도 세세하게 나와서 재미있었지만 Safari가 어떤 과정으로 나타난 프로덕트인지도 재미있는 부분이었다. 글에서는 간단하고 흥미롭게만 쓰였지만 분명 지나간 일이라 이렇게 아름답게 쓸 수 있었을 것이라 생각도 들고. 중간 중간에 어떤 결단들이 이 사람의 커리어에 어떤 영향을 줬는지도 인상적이다.

학생으로 돌아온 이후로 실무에 대한 막연한 그리움이 있었는데 이 책을 읽으면서 프로젝트를 진행하고 결과를 내는 즐거움을 그리워하고 있다는 걸 알게 되었다. 물론 지금도 자잘한 코드를 만들긴 하지만... 함께 만들고 누군가에 도움이 되는 그런 즐거움이 그립다.

Hard work is hard. Inspiration does not pay off without diligence. We collaborated to get through the drudgery. -- p.88

I think if you do something and it turns out pretty good, then you should go do something else wonderful, not dwell on it for too long. Just figure out what's next. -- p.133

I described empathy as trying to see the world from other people's perspectives and creating work that fits into their lives and adapts to their needs. Empathy is a crucial part of making great products. -- p.182

Taste is developing a refined sense of judgement and finding the balance that produces a pleasing and integrated whole. -- p.183

Our goal was to orchestrate a progression of algorithms and heuristics to create great products that would put smiles on people's faces and would function well without fuss. Design is, after all, how it works. -- p.245

Published on March 11, 2022
게이미피케이션 책 표지

게이미피케이션의 대략적인 개념을 이해하는데 도움이 됐다. 이 책에서는 게임의 재미가 메커니즘에서 오며 도전과 성취, 보상의 순환 구조 속에서 매력을 느낀다고 설명한다. 어떻게 참가자가 플레이어로 변화하고 시스템 내에서 장기적으로 존재하기 위해서 어떤 기법과 역학을 활용해야 하는지 설명한다.

게이미피케이션에서 사용하는 기법을 이야기하는데 각 기법에 대해 깊은 설명보다 사례 위주로 정리하는 편이다. 소셜 몰입 루프, 게임 요소 목록, 텅 빈 주점 문제를 해결하는 방법이 인상적이었다.

마지막엔 실습 부분도 있지만 거기서도 구현에만 치중되어 있고 디자인에서 왜 그런 결정을 내려야 하는지에 대한 설명이 부족했다. 대부분 섹션에서 상세한 내용은 자신의 웹페이지를 인용하는데 그 웹사이트가 없어진 탓에 반쪽짜리 책이 되었다. 아무래도 오래된 책이긴 하더라도 얇은 책인데 더 얇게 느껴졌다. 그래도 핵심적인 부분에 대해서는 다 다루고 있기 때문에 간단하게 보기에는 좋은 책이다.

책 내에서 추천한 책: Jesse Schell 의 The Art of Game Design: A book of lenses (Amazon, 알라딘)

게임 메커니즘

  • 점수
  • 레벨
  • 리더보드: 집계 방식이 사생활을 침해하지 않도록 유의
  • 배지
  • 온보딩 (초보자 적응 프로그램)
  • 도전과제와 퀘스트
  • 소셜 몰입 루프
    • 가시적인 성장과 보상 -> 감성적인 자극 -> 소셜 행동 요구 -> 플레이어의 재몰입 -> (가시적인 성장과 보상) -> (...)
  • 맞춤화: 최소 요구 사항만 만족하기
  • 대시보드
  • 피드백과 강화: 흐름 범위 내에서

사람들이 좋아하는 요소

  • 패턴인식: 퍼즐, 카드 뒤집기
  • 수집: 흔한 아이템에서 한정 아이템까지
  • 놀라움과 의외의 즐거움: 슬롯머신
  • 정리하고 질서 잡기: 심시티
  • 선물하기: 애니팡 하트
  • 집적대기와 로맨스: 찔러보기 (페이스북)
  • 성과 인정: 배지, 트로피
  • 리더십: 팀 과제
  • 명성 얻기와 주목 받기: 리더보드
  • 영웅 되기: 도와주세요 메시지, 제한된 시간
  • 지위 얻기: 배지, 트로피 (공개된 프로필)
  • 육성, 성장: 다마고치

(게이브 지커맨, 크리스토퍼 커닝햄 지음, 정진영, 송준호, 김지원 옮김, 한빛미디어, 2012년)

Published on January 11, 2022

완벽주의는 최선을 다해 노력하는 것과는 다릅니다. 완벽주의는 완벽하게 살고, 꾸미고, 행동하는 것으로 비난과 비판, 망신의 부끄러움을 최소화하거나 피할 수 있다고 믿는 것입니다. 마치 방패와도 같습니다. 나를 보호한다는 미명 아래 20톤의 방패를 둘러치고 있는 것이죠. 실제로는 그 방패가 우리의 비상을 방해하고 있습니다.

Perfectionism is not the same thing has striving to be your best. Perfectionism is the belief that if we live perfect, look perfect, and act perfect, we can minimize or avoid the pain of blame, judgement, and shame. It’s a shield. It’s a twenty-ton shield that we lug around thinking it will protect us when, in fact, it’s the thing that’s really preventing us from flight.

― 브레네 브라운 (Brené Brown). The Gifts of Imperfection.

Published on September 13, 2021

(허지원 저, 홍익출판사, 2018)

자신을 괴롭히지 않으려면 자신을 어떻게 대하고 다가가야 하는지, 어떤 방식으로 접근해야 하는지 뇌과학과 임상심리학 관점에서 나눠서 풀어간다. 각각의 챕터에서 내 일부를 마주하게 된다. 폭넓게 다루다 보니 조금 더 자세한 내용을 보고 싶다는 생각도 든다.

나는 나에게 꽤 집요하다 할 정도로 지독한 편인데 이 책을 읽으며 많이 반성했다. 나 스스로에 매몰되지 않고 좀 더 가벼운 마음으로 지낼 수 있었으면 좋겠다.

Published on October 5, 2020

자는 시간을 제외하고는 대부분의 시간을 크고 작은 화면을 본다. 특별한 내용이 없더라도 화면을 스크롤 하는 일이 일상이다. 누군가와 함께 앉아 있더라도 잠시나마 서로 화면을 보느라 조용해지는 시간도 종종 있다. 그렇게 많은 시간을 쓰고 있다는 것을 나도 잘 알지만, 장점이 있다고만 생각해왔었다. 새로운 정보를 빠르게 습득할 수 있다든지, 잠깐 물 뜨러 가면서도 비는 시간 없이 무언가를 볼 수 있다는 점에 내가 자투리 시간을 잘 활용하고 있다는 기분도 들었다.

그래서 디지털 미니멀리즘이라는 제목만 보고도 대충 덮어놓고 지냈던 내 습관을 마주해야 했다. 가끔 스마트폰을 너무 많이 들여다보면 며칠 쉬어보기도 했지만, 순간뿐이었다. 스크린 타임을 설정하고도 15분 제한 무시를 수시로 누르다가 결국은 기능을 꺼버린다. 나는 어째서 절제하지 못하는가, 그런 죄책감을 느끼면서도 또다시 수시로 화면을 봤다.

디지털 미니멀리즘에서는 이런 중독에 가까운 증상이 주의력을 기반으로 움직이는 기업을 문제로 삼았다. 프로덕트나 서비스에 오래 체류할수록 수익이 느는 기업은 어떤 방식을 사용해서든 그 시간을 늘리려고 한다. 마치 슬롯머신을 돌리는 것처럼 스크롤을 돌리면 새로 고침과 함께 내가 원하는 정보가 튀어나올 것처럼 디자인했다는 것이다. 단순히 비약이라고 하기에는 내 행동을 돌아봤을 때 그렇게 사실이 아니라고 단정적으로 말하긴 어려웠다. 나도 아침부터 저녁까지 스크롤을 손으로 당겼으니까. 당길 때마다 달라지는 타임라인과 뉴스피드를 보기 바빴으니까. 내 주의력을 내어주고 쓸 만큼 나에게 도움이 되는가 생각해보면 솔직히 부끄러운 마음만 든다.

책에서는 철저하게 멀어진 후에 다시 각 도구와 서비스의 가치를 세심히 평가하고 삶에 도입하는 방식을 이야기한다. 예를 들면 트위터는 일주일 또는 하루 중 정해진 시간만 확인한다. 그리고 정말로 필요한 정보만 볼 수 있도록 세세한 필터를 지정한다. 이런 방식은 이렇게 해야 한다고 정해진 것이 아니라 정말 자신에게 필요한 것인가를 심사숙고하는 과정에서 결정되어야 한다고 이야기한다. 책에서도 다양한 사람들의 다양한 접근 방식을 설명하고 있고 자신에게 맞는 방법을 고를 수 있도록 돕는다.

물론 이런 책 한 권 보고 짠! 하고 바뀌진 않았다. 나도 책에서 제안하듯 단호하게 끊지 못했다. 책을 덮고 나서도 여러 차례 시도했는데 잠깐의 틈이라도 생기면 화면을 보는 내 모습에 좀 더 심각성을 느꼈다. 내 산만함을 정돈할 좋은 기회가 되었으면 좋겠다.


디지털 미니멀리즘: 딥 워크를 뛰어넘는 삶의 원칙. 칼뉴포트 저, 김태훈 역. 세종서적.

번역가 되는 법이란 제목이 눈에 확 들어와서 집었다. 내 번역 끈은 짧지만 조금씩이나마 글을 번역해서 올리는 입장에서 좀 더 전문성을 가져보는 것은 어떨까, 제목만 보고 그런 생각을 하며 이 책을 구입했다.

그동안 접했던 번역 도서는 번역을 어떻게 해야 하는가에 대한 내용이 주를 이뤘는데 이 책은 실무적 이야기가 중심이다. 출판 시장에서 번역가는 어떤 역할을 하고 있는지, 업무는 어떤 방식으로 진행되는지 전반적인 그림을 보는데 도움이 된다. 얇은 책에 판형도 작아서 읽는데 전혀 부담이 없는 분량이지만 업계에 오랜 기간 다양한 위치에서 경험을 쌓은 분답게 깊이가 느껴졌다.

잘 읽히지 않는 책에서만 번역가의 존재가 들어난다는 이야기부터, 번역가가 되기 위해서 어떤 배경과 자질을 갖춰야 하는지, 삶을 잘 배분해 규칙적으로 번역하는 번역가의 일상, 원서와 저작권, 출판사와 편집자의 역학 관계를 세세하게 보여주기도 한다. 의역과 직역에 대한 고민도 빼놓지 않았다. 번역을 하고 싶은 사람이든 하고 있는 사람이든 공감하고 읽을 부분이 참 많다.

아르바이트를 병행해야 할 수 밖에 없는 상황에서 어떤 아르바이트를 해야 하는지 지극히 현실적인 부분부터 그래도 번역에서 자유를 느낀다는 이야기는 내 스스로도 무슨 일을 할 때 이런 자유함을 느끼고 있는지 생각하게 했다.

저의 과거와 현재의 삶 그리고 그 삶 속에서 실천해 온 노력으로 새로운 창조물을 만들며 자유의 희열을 느끼게 해 주는 이 작업이 무엇보다 소중합니다. - 128쪽

무엇을 만들어내는 감각은 분야를 막론하고 사람을 일에 빠지게 하는 원동력이 되는 것 같다.

Bjarne Stroustrup 책을 읽고 있는데 단순하면서도 마음에 남는 말이 참 많다.

Our code must be maintainable … A successful program “lives” for a long time (often for decades) and will be changed again and again. … Only a failed program will never be modified.

코드는 꼭 유지보수가 가능해야 합니다. … 성공적인 프로그램은 오랜 시간을, 종종 수십 년을 “살며” 계속 변경됩니다. … 실패한 프로그램은 절대 수정되는 일이 없습니다.

To be maintainable, a program must be simple relative to its requirements, and the code must directly represent the ideas expressed.

유지보수가 가능하려면 프로그램은 프로그램의 요구사항에 비해 단순해야 하며 코드는 아이디어의 표현을 직접 드러내야 합니다.

A program is a precise representation of our understanding of a topic.

프로그램은 우리가 주제를 어떻게 이해하는지를 알려주는 정확한 표현(representation)입니다.

Think about the problem itself, rather than your incomplete solution.

자신의 불완전한 해결책보다 문제 자체에 대해 생각하세요.

Programming is part practical, part theoretical. If you are just practical, you will produce non-scalable, unmaintainable hacks. If you are just theoretical, you will produce unusable (or unaffordable) toys.

프로그래밍은 실용적인 부분과 이론적인 부분이 있습니다. 만약 당신이 실용적이기만 한다면 당신은 확장하기 어렵고 유지보수 하기 어려운 코드 덩어리를 만들 겁니다. 반대로 이론적이기만 하면 사용 불가능한 (또는 감당하기에 너무 비싼) 장난감을 만들게 됩니다.


이 챕터 끝에 길을 잃은 기분이 들 때 이 책을 꺼내서 이 챕터를 다시 읽으라는 말에 울컥했다. 요즘 앞으로 어떤 개발을 해야 할지, 어떤 시장에서, 환경에서, 어떤 언어로 할지 고민이 많다. 다시 처음부터 시작하는 기분에 더 갈피가 잡히지 않는 것 같다.

웹 외의 환경은 해본 적이 없기도 하고 학교 가면 하게 될 것 같아서 cpp를 한동안 볼 것 같다. 영어도, 수학도 준비해야 하고. 적어보니 바빠야 하는데 막상 하나 제대로 하지 못하는 것 같고. 이렇게 고민에 고민을 더한다.

내 기분 속여서 하려고 노력하기보다 어떻게든 꾸역꾸역 해야 할 때가 온 것 같다. 빨리 방향도 생각도 다듬어졌으면 좋겠다!

지금의 마이크로소프트는 이전의 MS가 보여줬던 모습과는 확연히 다르다. 오픈소스로 공개하는 많은 결과물과 다양하면서도 견고한 서비스를 제공하는 클라우드, 유기적으로 통합된 프로덕트는 커다랗고 정적인 회사라는 내 생각의 틀을 바꿨다. MS의 CEO로 사티아 나델라가 선임된 날을 기억한다. 그 날 이후 달라진 MS를 보면서 단순히 CEO의 차이로 이렇게 체질을 바꿀 수 있는 것일까 하고 그동안 생각했었다. 사티아 나델라의 책 <히트 리프레시>를 읽으면서 지금의 MS이 되기까지의 과정을 엿볼 수 있었다.

조직이 어떻게 생각하고 행동할지를 문화가 결정한다고 하지만 문화의 틀을 빚는 주체는 개인이다.

책은 사티아 나델라의 이야기로 시작해 CEO가 되기까지 어떤 삶을 살았고 어떤 역할을 맡았는지 설명한다. 그리고 미래에는 어떤 기술이 주목받고 그 변화의 중심이 되려면 어떤 비전을 갖고 준비해야 하는지 풀어간다. 사티아의 독특한 이력도 흥미로웠고, CEO가 되기 전에는 클라우드 부문에서 Azure를 만드는 과정, CEO가 된 이후에 체질을 바꾸기 위한 과정도 인상적이었다. 책 전체에서 강조된 “공감”이라는 키워드를 조직에 녹이기 위해 어떤 일을 했는지 잘 설명하고 있다.

어떻게 해야 우리 기술로 우리 정체성에 말을 걸고 우리 사용자에게 유일무이한 가치를 부여할 수 있을까?

지금까지 내가 해왔던 일을 생각해보면 기술의 끝단에 서서 기술을 비지니스에 녹이고 사용자에게 제공하는 역할을 해왔다. 이 책에서 언급한 변화 앞에서는 어떤 역할을 하는 사람이 되어야 하나 고민된다. 일반 사용자를 대상으로 하는 도구를 만드는 일도 즐거운 일이지만 기술적 깊이가 있는 일은 아직 안해봐서 그런지 해보고 싶은 마음이 크다. 나는 어떤 역할로 어떤 위치에서 무슨 일을 해야 하는가 끊임없이 되물어보게 한다.

사람이든 조직이든 사회든 스스로 새로고침을 해야 하는 순간이 찾아온다. 그 순간이 오면 다시 열정을 불러일으키고 새로운 마음으로 목표를 재설정하고 치열하게 고민해야 한다.

무슨 일을 해야하나 생각을 오래 해온 탓에 그저 관성적인 고민이 아닌가 싶기도 했다. 치열하게 고민한다는 말이 울렸다. 새로고침을 해야 하는 순간이 왔다.

사람들이 변화에 저항하는 근본적인 이유는 미지에 대한 두려움 때문이다. 정말 중요하지만 확실한 답이 없는 질문은 사람들을 두렵게 한다.

앞으로 무슨 일을 해야 하는가, 이 질문은 늘 두렵다. 본문에서는 이 질문을 마이크로소프트에 던졌다. 서버 중심의 환경에서 클라우드로 나아가기 위해 두려운 질문을 마다하지 않았다. 또한 책에서는 미래를 대비하기 위한 기술로 인공지능, 증강현실 그리고 양자 컴퓨팅을 꼽았다. 이런 기술을 사용한 서비스가 하루가 다르게 나오고 있고 삶을 변화하고 있다. 나는 이런 질문에 어떻게 답할 것인가.

책을 읽은 후에도 여러 번 뒤적이게 된다. 고민이 많은, 지금의 나에게 답을 바로 주는 것은 아니지만 고민을 어떤 방향성과 동력을 갖고 해야하는지 알려주고 있다. 남은 한 해도 여러가지 변화가 있을 예정인데 고민 속에서도 하나씩 잘 해결해가고 싶다.

요즘 사무실에서 비는 시간이 좀 많이 있어서 책을 가져다두고 읽었다. 가볍게 읽으려고 읽었던 책을 가져가야지 했는데 지금 회사에서는 C#을 전혀 쓰지 않고 있으니 리마인드도 할 겸 읽게 되었다. 베타리딩을 포함해서 3번째 읽는데 그래도 또 배우는 게 많은 건 전에 열심히 안 읽어서 그런 걸까. 이번에는 읽고 기억하고 싶은 키워드라도 적어놔야지 싶어 표시해둔 부분을 여기에 옮겼다.

이 책은 어떤 방식으로 구조를 짜야 좋은 적응력을 가진 코드를 작성할 수 있는지 설명한다. 크게 세 부분으로 볼 수 있는데 가장 먼저 애자일 방법론과 적응형 코드를 작성하기 위한 배경적인 지식을 쌓는다. 그리고 SOLID 패턴에 대해 여러 예시를 들어 설명한 후, 마지막으로 실무에서 적용하는 예시로 마무리한다.

1부에서는 어떤 방식으로 작성하면 코드 의존성이 강해지는지, 어떤 계층적인 접근을 해야 유연한 구조를 구성할 수 있는지 풀어간다. 이런 흐름에서 왜 인터페이스를 도입해야 하고 디자인패턴이 어떻게 코드에 유연함을 더하는지 확인한다. 이런 구조의 코드를 어떻게 테스트하고 리팩토링하는 과정을 통해 개선하는 부분까지 다뤘다.

C#을 기준으로 설명하고 있어서 어셈블리를 어떻게 구성해야 한다거나 nuget을 구성하는 방법이라든가 하는 부분은 좀 거리감 있게 느낄 수도 있는데 요즘은 대다수 언어가 어떤 방식으로든 이런 부분을 지원하고 있으니 그렇게 맥락이 멀게 느껴지지 않았다.

의존성 관리(p. 66)에서 어떤 게 코드 스멜인지 알려주고 그 대안을 잘 설명하고 있다. C#에 매우 한정된 부분이긴 하지만 CLR의 어셈블리 해석 과정도 흥미로웠다.

여기서는 계층화를 점진적으로 진행하는 과정(p. 96)이 특히 좋았다. 인류 발달 과정 설명하듯 하나씩 짚어가며 어떤 이유에서 분리했는지 설명하고 있어서 최종 단계만 보면 막막할 수 있는 계층을 이해하는데 도움이 되었다.

2부에서는 SOLID 패턴을 하나씩 실질적인 예시와 함께 설명했다. 리스코프 치환 원칙을 설명하는 부분(p. 253~)이 재미있었다. 계약 규칙에서는 사전 조건과 사후 조건을 작성하는 방법과 불변성을 어떻게 유지해야 하는지 설명했다. System.Diagnostics.Contracts를 사용해서 각 조건을 기술하는 방식도 참 깔끔하다. 그리고 가변성 규칙에서 공변성과 반공변성을 짚고 넘어갔는데 제네릭이 어떤 식으로 동작하는지 이해하는데 많이 도움 됐다.

인터페이스 분리도 유익했는데 질의/명령을 인터페이스로 분리하는 부분도 좋았다. 의존성 주입은 이미 부지런히 쓰고 있었지만, 생명주기(p. 346)를 설명하는 부분은 다소 모호하게 생각했던 IDispose를 다시 살펴볼 수 있었고 이 인터페이스를 어떤 방식으로 생명주기 관리에 적용하는지 배울 수 있었다. 이 부분은 실무에서 좀 더 많은 사례를 접해보고 싶다.

예전에도 좋아서 추천 많이 했는데 또 읽어도 좋아서 추천하고 싶다. C#도 부지런히 해서 실무에서 다시 쓸 기회가 왔으면 좋겠다.

나도 신입으로 일을 시작했을 때 혼자 인터넷 검색창을 붙들고 코드와 씨름한 경험이 있었다. 작은 회사에서 유일한 개발자라 물어볼 선임도 없었고, 문제는 어떻게든 기간 내에 해결해야 하는 상황이 많았다. 모두가 신입 시절을 거치는 동안 그런 벽을 마주할 때가 있을 것 같다. 넘어야 할 산은 높고 나는 너무나 작게만 느껴지는 그런 경험을 거치고서 각자 지금의 자리에 있지 않나, 생각한다. <바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서>라는 책 제목을 보는 순간에 그 신입 당시의 기억이 먼저 떠올랐다.

바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서 표지

개발을 코드를 작성해서 실행하는 일이라고 단순하게 설명할 수 있지만, 현실에서는 그렇게 간단하지 않다. 코드를 어떻게 잘 작성하는가도 중요한 주제지만 그만큼 코드를 잘 관리하는 일도 중요하다. 게다가 코드가 실행되는 환경을 이해하는 과정도 필요하다. 환경도 여러 계층에 걸쳐 있다면 두루두루 살펴봐야 한다. 언어도, 환경도 서로 쉽게 이해하고 공유할 수 있도록 다양한 규칙과 규약을 정리해놓고 있고 이런 부분도 숙지해야 한다. 개발이라고 말하기에는 다각적으로 알아야 하는 부분이 많다.

신입으로 첫날 출근하면 이런 지식에 압도당한다. 신입으로 시작할 때 가장 막막한 점은 단순히 언어에 대한 이해를 넘어서 이런 다양한 지식을 한꺼번에 흡수해야 한다는 점이다. 순식간에 넓은 분야를 깊이 있게 이해하는 일은 생각만으로도 벅차다. 알아야 할 모든 내용을 단번에 이해하면 좋겠지만 절대 쉬운 일이 아니다. 그런 막막한 상황에서 가장 중요한 것은 알아야 할 내용의 키워드를 습득하는 것이다. 키워드를 알면 그 키워드를 중심으로 아는 범위를 쉽게 늘릴 수 있다. 그런 점에서 이 책은 폭 넓으면서도 중요한 키워드를 모두 포함하고 있어서 학습에 좋은 가이드가 된다.

일단 PHP를 기준으로 설명하기 때문에 PHP를 사용하는 사람이라면 꼭 알아야 할 내용을 잘 다루고 있다. 그리고 많은 내용을 PHP에 할애하고 있긴 하지만 거기에 덧붙여 지금 시대에 웹개발을 한다면 필수적으로 알아야 할 다양한 키워드를 장마다 풀고 있다. 또한, 각 문제와 주제에 대해 어떤 식으로 접근해야 하는지 복잡하지 않게 설명한다. 실제로 문제를 마주하게 될 때 어떤 식으로 생각하고 찾아봐야 하는지 그 방법도 잘 전달하고 있다.

  • 저장소가 뭔가요? (버전 관리 시스템)
  • 저장소의 소스코드를 받았는데 왜 안되죠? (컴포저)
  • 제 컴퓨터에서는 잘 되는데요? (가상 머신을 이용한 개발 환경 구축)
  • 어떤 파일을 고쳐야 할 지 모르겠어요 (프런트 컨트롤러 패턴과 MVC 패턴)
  • GET, POST는 알겠는데 PUT, DELETE는 뭔가요? (HTTP와 REST)
  • 그렇게까지 해야 하나요? (시큐어 코딩)
  • 그냥 제 스타일대로 하면 안되나요? (코딩 컨벤션과 PHP 표준 권고)
  • MySQLi는 나쁜건가요? (PDO와 ORM)
  • 메모장에 코딩하면 안되나요? (통합 개발 환경)

책을 읽기 시작하자마자 끝까지 고개를 끄덕이며 읽었다. 내가 신입으로 들어갔을 때 이런 책이 있었으면 얼마나 수월하게 배우기 시작했을까. 주변에 PHP를 사용하는 사람이 있다면 꼭 알려주자. 신입 PHP 개발자에게는 어떻게 시작해야 하는지 좋은 가이드가 되고 선임이나 팀장급 이상이라면 어떤 내용을 신입에게 가르쳐야 하는지 명확한 지침이 되는 책이다.

색상을 바꿔요

눈에 편한 색상을 골라보세요 :)

Darkreader 플러그인으로 선택한 색상이 제대로 표시되지 않을 수 있습니다.