안녕하세요 😉 유유자적한 개발자 유로띠 입니다 😀 회사에서 프로젝트를 통해 배우고 성장하며 이것을 토대로 그로스 해커(Growth Hacker)가 되기 위한 포스팅입니다. 오늘의 이야기는 테스트 코드 는 왜 중요한지 에 대한 내용입니다 😏 테스트 코드의 경험 1년간의 프로젝트 저는 현재 온라인 강의 콘텐츠를 제공하는 회사에 다니고 있습니다. 올해 초 오픈한 신규 B2B 온라인 강의 사이트를 위해서 작년부터 열심히 달려왔습니다. 전체 아키텍처를 새롭게 구상하고 기존에 사용하던 프레임 워크와 언어를 과감하게 변경하고 새로운 기능을 추가하면서 새롭게 시작하였습니다. 때문에 1년의 시간은 정말 너무너무 부족한 시간이었죠... 😇 하지만 그 부족한 시간 속에서 저희 팀이 지켜야 하는 단 한 가지 규칙이 바로 테스..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 오늘 읽은 범위: 8장 프로젝트 전에 - 요구 사항의 구렁텅이 ⭐️ 연습 문제33 다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구 사항이 아닌 것을 좀 더 유용하게 고쳐 써보라. 🧐 응답 시간은 500ms 이하여야 한다. 🟢 나의 해답 : 충분히 요구 사항이라고 생각할 수 있다. 응답 시간은 500ms 이하여야 한다는 요구는 결국 '응답 시간을 최소화해야 한다'는 요구 사항일 것이다. 충분히 속도를 줄이되 500ms는 초과하면 안되는 것이다. 📖 책의 해답 : 더보기 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다. 모달 창의 바탕색은 회색이다. 🟢 나의 ..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 우리가 하는 일은 특이한 경우에 대해 집요하게 캐물어서 사람들을 화나게 해야 한다. ✏️ 행운은 준비된 사람에게 찾아온다. 🍀 ✏️ 코드에 혼자 들어가지 말자... 코드 리뷰를 하자. DAY 8 오늘 읽은 범위: 8장. 프로젝트 전에 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 프로젝트가 닻을 올리기 전에 이런 중요한 문제들이 잘 정리되어야 '분석 마비증'을 모면할 수 있다. 프로젝트를 정말로 시작하고, 성공적으로 마칠 수 있다. (P.350) 요구 사항의 구렁텅이 🟢 요구 사항이 땅 위에 놓여 있는 경우는 드물다. 보통은 가정과 오해, 정치의 지층 속 깊숙이 묻혀 있다. 심지어 아예 존재하지 않..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 테스트를 실행할 때가 아니라 테스트에 대해 생각하고, 테스트를 작성할 때 생긴다. ✏️ 리팩터링이 필요한 코드는 '종양'이다. ✏️ 이름 짓기 정말 어려워... DAY 7 오늘 읽은 범위: 7장. 코딩하는 동안 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 코딩할 때는 매 순간 결정을 내려야 하는데, 프로그램이 정확하게 생산적으로 작동하면서 천수를 누리도록 하려면 사려 깊은 생각과 판단으로 결정을 내려야 한다. (P.273) 🟢 적극적으로 자기 코드에 대해 생각하지 않는 프로그래머는 우연에 맡기는 프로그래밍을 하는 것이다. 코드가 작동하긴 하지만 왜 그렇게 작동하는지 설명은 못한다. (P.274) ..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 공유 상태? 어떤 상태? 틀린 상태 ✏️ 불규칙한 실패는 동시성인 경우가 많다. ✏️ 상태 비공유 특성(No Shared State) - 액터 DAY 6 오늘 읽은 범위: 6장. 동시성 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 동시성은 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것이다. 그리고 병렬성이란 실제로 동시에 실행되는 것이다. (P.241) 동시성 -> 파이버, 스레드, 프로세스 등을 사용하여 동시성을 구현 병렬성 -> 두 가지 일을 동시에 할 수 있는 하드웨어가 필요 🟢 사용자와 상호작용하고, 데이터를 불러오고, 외부 서비스를 호출하는 일을 동시에 해야 한다..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 구부러지는 유연한 코드를 작성하자. ✏️ 묻지 말고 말하라, TDA ✏️ 내 코드가 도도새가 되지 말자. DAY 5 오늘 읽은 범위: 구부러지거나 부러지거나 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 가능한 한 느슨하고 유연한 코드를 작성해야 한다. (P.181) 🟢 유연함을 유지하는 한 가지 좋은 방법은 물론 가능한 한 코드를 적게 작성하는 것이다. 이런 모든 기법을 활용하면 여러분의 코드가 부러지지 않고 구부러질 것이다. (P.182) 결합도 줄이기 🟢 높은 결합도는 변경의 적이다. (P.182) 🟢 소프트웨어의 구조는 유연해야 한다. (P.183) 🟢 결합도가 낮은 코드가 바꾸기 쉽다. (..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 완벽한 소프트웨어는 만들 수 없어.. 안전한 소프트웨어를 만들자. ✏️ 망치지 말고 멈춰! ✏️ 이상적이지만 언제나 교체 가능한 코드를 작성하여 대비하자. DAY 4 오늘 읽은 범위: 4장 실용주의 편집증 😉 책에서 기억하고 싶은 내용을 써보세요. 여러분은 완벽한 소프트웨어를 만들 수 없다. 🟢 실용주의 프로그래머는 자기 자신 역시 믿지 않는다. 자신의 실수에 대비한 방어책을 마련한다. (P.146) 🟢 불완전한 시스템, 어림도 없는 기간, 우스꽝스러운 도구, 불가능한 요구사항으로 가득 찬 세상에서 안전하게 살아 보자 (P.147) 계약에 의한 설계 🟢 DBC - 계약에 의한 설계(Design By..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 셸로 능률을 향상시키자. 잘하면 자동화도 할 수 있겠다. ✏️ 버전관리는 정말 중요하고 git을 더 잘 다룰수 있도록 노력하자. ✏️ 버그를 해결하는 것도 찾는 것도 능력이다. DAY 3 오늘 읽은 범위: 3장 기본 도구 😉 책에서 기억하고 싶은 내용을 써보세요. 서론 🟢 도구는 여러분의 재능을 증폭한다. 언제나 일을 하는 데에 더 나은 방법이 없는지 살펴라 (P.104) 일반 텍스트의 힘 🟢 우리가 수집하는 요구 사항은 지식이고, 우리는 그 지식을 설계와 구현, 테스트, 문서로 표현한다. (P.105) 🟢 일반 텍스트가 널리 쓰이는 이유. 지원 중단에 대한 보험 - 데이터가 남아 있는 한 그걸 사..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 클린 코드에도 나오는 DRY원칙! 중요하다! ✏️ 새롭게 배운 ETC 원칙. 바꾸기 더 쉽게 코딩하도록 하자. ✏️ 본인이 짠 코드를 한달 뒤에 봤을 때 고칠 게 없으면 하산해도 된다. DAY 2 오늘 읽은 범위: 2장. 실용주의 접근법 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 잘 설계된 코드는 바뀜으로써 사용하는 사람에게 맞춰져야 한다. 그래서 우리는 ETC 원칙을 따른다. 바꾸기 더 쉽게(Easier to Change.) 이게 전부다.... 왜 결합도를 줄이면 좋은가? 관심사를 분리함으로써 각각이 더 바꾸기 쉬워지기 때문이다. 왜 단일 책임 원칙이 유용한가? 요구 사항이 바뀌더라도 모듈 하..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) ⭐️ 3줄 요약 ✏️ 깨진 창문을 찾아 리팩터링을 해보자. 내가 많이 깨먹었지만.. ✏️ 한 달에 한 권 노개북을 통해 해 보자. ✏️ 나쁜 기획, 설계에 대해 변명하지 말고 대안을 제시해 보자. DAY 1 오늘 읽은 범위: 1장 실용주의 철학 😉 책에서 기억하고 싶은 내용을 써보세요. 🟡 자신이 하는 모든 일에 책임을 진다는 점이다. (P. 1) 🟡 왜 직접 바꾸지 않습니까? (P. 2) 🟡 우리는 자신의 능력에 자부심을 가질 수 있지만, 실수나 무지 같은 단점도 인정해야만 한다. (P. 4) 🟡 해결을 찾아내야 하는 사람은 여러분이다. (P. 6) 🟡 변명 말고 대안을 제시하라 (P. 6) 🟡 나쁜 설계, 잘못..
안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 🙋♂️ 이번주부터 실용주의 프로그래머 독서를 시작하려고 합니다. 먼저 구매 인증 부터 🙌