스크립트
00:00:00저는 약 3년 동안 소프트웨어 개발자로 일해왔는데, 솔직히 말해서 제가
00:00:05가장 후회되는 점은 첫 2년 동안 잘못된 것에만 시간을 쏟았다는 것입니다.
00:00:10저는 과거로 돌아가 실수를 바로잡을 수 없지만, 여러분은 그럴 수 있습니다. 대부분의 사람들이 가진 문제는
00:00:15같은 CRUD 애플리케이션만 반복해서 만든다는 것입니다. 스스로는
00:00:20다른 프로젝트를 만들고 있다고 생각하지만, 실제로는 겉모습만 바꾼 비슷한 프로젝트를 만들고 있는 거죠.
00:00:26때로는 블로그이고 때로는 쇼피파이(Shopify) 클론이지만, 그 근본에는 정확히
00:00:31데이터베이스의 항목을 생성, 조회, 수정, 삭제하는 CRUD 원리가 있습니다. 댓글창에서 저를 비난하기 전에 말씀드리자면,
00:00:38저는 초보 시절 CRUD 앱을 만드는 것에 반대하지 않습니다. 그게 바로 학습의 과정이고
00:00:43눈 감고도 할 수 있어야 하는 기본기이기 때문입니다. 여러분이 만드는 모든
00:00:48소프트웨어는 이 기초 위에 세워집니다. 하지만 거기에 너무 안주하면서 그 이상으로 나아가지 못하는 게 문제죠.
00:00:54그 선을 넘어서면 CRUD 앱 너머의 완전히 새로운
00:00:59세계를 경험할 수 있습니다. 안주하던 곳에서 한 발짝만 벗어나면 말이죠.
00:01:04이 영상은 바로 그 방법을 다룹니다. 지금 당장 시작할 수 있는 세 가지를 알려드릴게요.
00:01:10세 번째 방법을 놓치지 마세요. 리스트 중에서 가장 게으른 방법이지만, 의외로 제게
00:01:15가장 많은 가르침을 준 방법이니까요. 그럼 첫 번째부터 시작하죠. 기존 프로젝트를 실무 수준으로 만드세요.
00:01:20이건 인터넷에서 새로운 프로젝트를 찾으러 돌아다닐 필요 없이 지금 당장 오늘 밤부터 시작할 수 있습니다.
00:01:25여러분이 이미 만든 것을 골라보세요. 블로그일 수도 있고, 이커머스
00:01:31플랫폼일 수도 있죠. 그것을 실무 수준으로 만들어 보는 겁니다. 여기서 실무 수준이란,
00:01:37지금까지는 단순히 작동하게 만드는 것에만 집중했다면 이제는 현실 세계에서 진짜 중요한 것들에 집중하라는 뜻입니다.
00:01:43보안, 성능, 신뢰성, 테스트, 관측 가능성 같은 것들이요. 이것들이야말로
00:01:49실무 애플리케이션의 진짜 핵심이니까요. 이커머스 플랫폼을 예로 들어보죠.
00:01:54지금은 기능이 작동하죠. 로그인을 하고, 카트에 물건을 담고, 결제하고, 확인 이메일을 받는 흐름이 완벽합니다.
00:02:01하지만 계획대로 일이 풀리지 않을 때를 대비한 설계는 아마 되어있지 않을 겁니다.
00:02:07거기서 바로 보안이 중요해집니다. 기본적으로 자신의 앱에서 결함과 취약점을 찾아내는 거죠.
00:02:13요청을 살짝 바꾸는 것만으로 다른 사용자로 로그인할 수 있는지, 아니면 결제 경로에서
00:02:18음수를 입력해도 결제가 승인되어 고객에게 오히려 돈을 입금하게 되는지 확인해보세요.
00:02:23제 말을 믿으세요. 앱이 배포되자마자 5분 안에 누군가 정확히 그런 시도를 할 겁니다.
00:02:27그다음은 성능입니다. 상품 페이지에 100명의 가짜 사용자를 동시에 접속시켜 보고 무슨 일이 일어나는지 보세요.
00:02:33100명이 한꺼번에 데이터베이스를 조회할 때 무엇이 망가지는지 확인하세요. 지금 여러분의
00:02:38앱은 오직 아주 인내심 많은 단 한 명의 사용자에게만 테스트되었으니까요. 그다음은 테스트입니다. 배포하기 전
00:02:452분 동안 앱을 클릭해보는 것만으로는 부족합니다. 실제 자동화된 테스트가 필요하죠.
00:02:50이 과정에서 두 가지를 동시에 배울 수 있습니다. 좋은 테스트 케이스를 작성하는 방법과,
00:02:56GitHub Actions 워크플로우 같은 도구를 설정해서 리포지토리에 변경 사항을
00:03:01푸시할 때마다 자동으로 테스트가 실행되게 하는 방법이죠. 그게 실제 실무 워크플로우니까요. 마지막으로,
00:03:07관측 가능성(observability)입니다. 이건 그냥 멋진 말이고, 새벽 3시에 문제가 생겼을 때
00:03:13정확히 무슨 일이 일어났는지 알아낼 수 있느냐는 뜻입니다. 적절한 로깅, 메트릭, 그리고 문제가 생겼을 때
00:03:19앱이 스스로 알릴 수 있도록 만드는 것을 의미하죠. 기본적인 CRUD 앱에 이런 것들을 추가하는 데 집중하면
00:03:25캐싱, 속도 제한, 큐, 데이터베이스 인덱싱, 로드 밸런싱 같은 것들을 자연스럽게 배우게 됩니다.
00:03:32정말로 딱 하나의 프로젝트로만 해보세요. 그러면 다른 수십 개의 평범한 CRUD 앱을 만드는 것보다
00:03:38실제 시스템이 어떻게 작동하는지에 대해 훨씬 더 많이 배우게 될 겁니다.
00:03:44이제 두 번째입니다. 이건 조금 뻔할 수 있는데, 정말로 복잡한 것을 만들어 보세요.
00:03:50무엇을 만들지 막막하다면, 여러분이 매일 사용하는 기존 도구를 골라서
00:03:56처음부터 똑같이 만들어 보세요. 이것이 바로 개발자에서
00:04:01엔지니어로 도약하게 해주는 프로젝트입니다. 화면에 보이는 이 플랫폼이 궁금하시다면, 'CodeCrafters'라고 합니다.
00:04:06대중적인 실무 도구들을 제시하고 처음부터 직접 만들어 보도록 도전 과제를 줍니다.
00:04:12코드를 알려주지는 않아요. 로드맵만 제시하고 나머지는 스스로 알아내야 하죠.
00:04:17저도 직접 해봤는데 정말 유용했습니다. 관심 있으시면 설명란의 링크를 확인하세요.
00:04:23자, 이제 세 번째입니다. 이건 솔직히 이 리스트에서 가장 게으른 방법입니다. 바로
00:04:29포스트모템 보고서를 읽는 것입니다. 여기서 포스트모템이란 실제 사망 확인이 아니라, 기술 업계에서
00:04:36심각한 사고가 발생한 후 회사가 작성하는 보고서를 말합니다. GitHub나 Cloudflare 같은 대기업들도
00:04:42모두 자신들의 실수를 공개적으로 발표하죠. 예를 들어, 이건 바로 Cloudflare의
00:04:47지난 11월 장애 당시의 포스트모템입니다. 안을 들여다보면 전체 이야기를 읽을 수 있죠. 사건이 정확히
00:04:53무엇이었고, 어떤 영향을 미쳤으며, 무엇이 원인이었고, 어떻게 해결했는지 말입니다. 이걸 읽으면 시스템이
00:04:59대규모 테크 기업에서 어떻게 운영되는지 배울 수 있습니다. 제 말을 믿으세요. 이런 보고서
00:05:04하나에서 기대 이상의 것을 얻을 수 있을 겁니다. 일주일에 하나씩만 읽어도 단 한 줄의 코드가
00:05:10빅테크 기업에서 어떤 문제를 일으킬 수 있는지 배울 수 있습니다. 오늘 내용은 여기까지입니다. 옛날 프로젝트를 업그레이드하고,
00:05:16정말로 복잡한 것을 하나 만들어보고, 포스트모템 보고서를 읽는 습관을 들여보세요. 이건
00:05:21제가 직접 하는 방식이기도 합니다. 이 리스트에 추가하고 싶은 게 있다면 댓글로 알려주세요.
00:05:26제 뉴스레터를 구독하시면 개발자분들에게 유용한 이런 콘텐츠를 매주 메일로 보내드립니다.
00:05:31이번 영상은 여기까지입니다. 도움이 되셨다면 많은 관심 부탁드려요.
00:05:37다음 영상에서 뵙겠습니다.