diff --git "a/7\354\236\245/\353\260\261\354\247\200\354\227\260.md" "b/7\354\236\245/\353\260\261\354\247\200\354\227\260.md" index 57e5f11..ce2fbfa 100644 --- "a/7\354\236\245/\353\260\261\354\247\200\354\227\260.md" +++ "b/7\354\236\245/\353\260\261\354\247\200\354\227\260.md" @@ -4,7 +4,7 @@ 프로그래머로서 경험이 늘어갈수록 암묵적인 지식이 쌓인다. 잘 되는 방법, 잘 안되는 방법, 오류 형태별로 가능한 원인 등 일하는 동안 보고 듣고 느끼는 모든 것이 쌓인다. -의심이 계속 남아 있거나 왠지 꺼림칙하다면, 그 느낌을 따라라. 직감이 여러분의 역량에 일조하도록 하라. +의심이 계속 남아있거나 왠지 꺼림칙하다면, 그 느낌을 따라라. 직감이 여러분의 역량에 일조하도록 하라. 본능, 무의식, 파충류의 뇌에게 귀 기울이기를 바란다. 파충류와 이야기하는 법 @@ -17,7 +17,7 @@ 행운과 우연한 성공에 의존하는 대신 '의도적으로 프로그래밍'해야 한다. 왜 코드가 망가졌는지 모르는 까닭은 애초에 코드가 왜 잘 돌아가는지도 몰랐기 때문이다. -잘 돌아가는 듯이 보이는데 그 이유를 모를 경우, 우연은 아닌지 반드시 확인하라. +잘 돌아가는 듯이 보이는데 그 이유를 모를 경우, 우연은 아닌지 반드시 확인하라. ## Topic 39 알고리즘의 속도 @@ -72,6 +72,8 @@ O(n²) 알고리즘이 있다면 분할 정복을 통해 O(nlgn)으로 줄일 코드를 리팩터링 할 이유에는 '중복, 직교적이지 않은 설계, 더 이상 유효하지 않은 지식, 사용 사례, 성능, 테스트 통과'가 있다. 안전한 리팩터링의 비결은 탄탄한 회귀 테스트를 유지하는 것이다. +> 7장 전까지 읽었던 내용을 요약해 주는 것 같은 토픽이었습니다👍 + ## Topic 41 테스트로 코딩하기 테스트가 코드의 첫 번째 사용자다. @@ -123,7 +125,8 @@ TDD의 기본 주기 #### 3. 안전한 기본값 기본 설정은 가장 안전한 값이어야 한다. -ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에 많은 사람이 있는 환경에서 비밀번호를 숨길 수 있어 좋다. +ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에 많은 사람이 있는 환경에서 비밀번호를 숨길 수 있어 좋다. +> 이런 간단한 처리도 안전한 기본값에 해당된다는 게 신선했습니다. #### 4. 민감정보를 암호화하라. @@ -132,16 +135,30 @@ ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에 #### 5. 보안 업데이트를 적용하라. -데이터 유출 사고 중 가장 큰 사고는 업데이트를 하지 않은 시스템 때문에 발생했다. +데이터 유출 사고 중 가장 큰 사고는 업데이트를 하지 않은 시스템 때문에 발생했다. +> 보안 업데이트 보니까 저는 dependabot이 떠오르네요. +> 여러분은 dependabot을 잘 활용하고 계신가요? +> 제가 담당했던 레거시 프로젝트는 무려 3년 전에 axios를 설치한 채로 방치되었고, dependabot PR 마저도 close된 상황이었어요. +> major version upgrade가 필요해서 부담되긴 했지만, 아래와 같이 태스크를 생성해 개선했던 경험이 있습니다. +> +> ## Topic 44 이름 짓기 -의도와 역할이 드러나게 이름을 짓는 것이 중요하다. +의도와 역할이 드러나게 이름을 짓는 것이 중요하다. +> 직관적인 이름 짓기에는 역시 한글 코딩이 최고죠 +> https://tosspayments-dev.oopy.io/chapters/frontend/posts/hangul-coding-convention +> 이런 컨벤션만 팀에서 잘 정한다면 한글을 사용해도 괜찮다고 생각합니다. 모든 프로젝트에는 팀 내에서 특별한 의미가 있는 용어가 있다. ex. `Order` : 온라인 상점을 만드는 팀에게는 '주문', 종교 단체의 역사를 보여주는 앱을 만드는 팀에게는 '교단'을 의미 반드시 팀의 모든 사람이 각 단어의 뜻을 알고 일관성 있게 사용해야 한다. -특별한 의미가 있는 단어를 모두 모은 **프로젝트 용어 사전**을 만드는 방법도 있다. - -의도를 제대로 표현하지 못하거나 오해를 부를 수 있거나 헷갈리는 이름을 발견했다면 고쳐야 한다. +특별한 의미가 있는 단어를 모두 모은 **프로젝트 용어 사전**을 만드는 방법도 있다. +> 회사 노션에 용어 사전 테이블 하나 만들어서 '국문, 영문, 설명, 결정 근거'를 작성하고 있어요. +> API, 코드 레벨에서 용어를 통일할 수 있다는 점이 좋은 것 같아요. + +의도를 제대로 표현하지 못하거나 오해를 부를 수 있거나 헷갈리는 이름을 발견했다면 고쳐야 한다. +> 이것도 제가 담당했던 업무 중 하나네요😅 +> 처음에는 prediction model이라는 용어를 사용했는데, +> 기능이 확장되면서 더 큰 개념을 가지는 machine learning으로 수정한 경험이 있습니다.