Skip to content

Commit

Permalink
docs: 7장 백지연 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
100Gyeon authored Sep 1, 2024
1 parent 8e4cd83 commit 1d50da6
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions 7장/백지연.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

프로그래머로서 경험이 늘어갈수록 암묵적인 지식이 쌓인다.
잘 되는 방법, 잘 안되는 방법, 오류 형태별로 가능한 원인 등 일하는 동안 보고 듣고 느끼는 모든 것이 쌓인다.
의심이 계속 남아 있거나 왠지 꺼림칙하다면, 그 느낌을 따라라. 직감이 여러분의 역량에 일조하도록 하라.
의심이 계속 남아있거나 왠지 꺼림칙하다면, 그 느낌을 따라라. 직감이 여러분의 역량에 일조하도록 하라.
본능, 무의식, 파충류의 뇌에게 귀 기울이기를 바란다.

파충류와 이야기하는 법
Expand All @@ -17,7 +17,7 @@

행운과 우연한 성공에 의존하는 대신 '의도적으로 프로그래밍'해야 한다.
왜 코드가 망가졌는지 모르는 까닭은 애초에 코드가 왜 잘 돌아가는지도 몰랐기 때문이다.
잘 돌아가는 듯이 보이는데 그 이유를 모를 경우, 우연은 아닌지 반드시 확인하라.
잘 돌아가는 듯이 보이는데 그 이유를 모를 경우, 우연은 아닌지 반드시 확인하라.

## Topic 39 알고리즘의 속도

Expand Down Expand Up @@ -72,6 +72,8 @@ O(n²) 알고리즘이 있다면 분할 정복을 통해 O(nlgn)으로 줄일
코드를 리팩터링 할 이유에는 '중복, 직교적이지 않은 설계, 더 이상 유효하지 않은 지식, 사용 사례, 성능, 테스트 통과'가 있다.
안전한 리팩터링의 비결은 탄탄한 회귀 테스트를 유지하는 것이다.

> 7장 전까지 읽었던 내용을 요약해 주는 것 같은 토픽이었습니다👍
## Topic 41 테스트로 코딩하기

테스트가 코드의 첫 번째 사용자다.
Expand Down Expand Up @@ -123,7 +125,8 @@ TDD의 기본 주기
#### 3. 안전한 기본값

기본 설정은 가장 안전한 값이어야 한다.
ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에 많은 사람이 있는 환경에서 비밀번호를 숨길 수 있어 좋다.
ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에 많은 사람이 있는 환경에서 비밀번호를 숨길 수 있어 좋다.
> 이런 간단한 처리도 안전한 기본값에 해당된다는 게 신선했습니다.
#### 4. 민감정보를 암호화하라.

Expand All @@ -132,16 +135,30 @@ ex. 비밀번호 입력 시 \*로 표시되는 게 기본값이라면, 주변에

#### 5. 보안 업데이트를 적용하라.

데이터 유출 사고 중 가장 큰 사고는 업데이트를 하지 않은 시스템 때문에 발생했다.
데이터 유출 사고 중 가장 큰 사고는 업데이트를 하지 않은 시스템 때문에 발생했다.
> 보안 업데이트 보니까 저는 dependabot이 떠오르네요.
> 여러분은 dependabot을 잘 활용하고 계신가요?
> 제가 담당했던 레거시 프로젝트는 무려 3년 전에 axios를 설치한 채로 방치되었고, dependabot PR 마저도 close된 상황이었어요.
> major version upgrade가 필요해서 부담되긴 했지만, 아래와 같이 태스크를 생성해 개선했던 경험이 있습니다.
>
> <img src="https://github.com/user-attachments/assets/b0b21cac-27fe-4491-b82f-e32a445c6c8e" width=400 />
## Topic 44 이름 짓기

의도와 역할이 드러나게 이름을 짓는 것이 중요하다.
의도와 역할이 드러나게 이름을 짓는 것이 중요하다.
> 직관적인 이름 짓기에는 역시 한글 코딩이 최고죠
> https://tosspayments-dev.oopy.io/chapters/frontend/posts/hangul-coding-convention
> 이런 컨벤션만 팀에서 잘 정한다면 한글을 사용해도 괜찮다고 생각합니다.
모든 프로젝트에는 팀 내에서 특별한 의미가 있는 용어가 있다.
ex. `Order` : 온라인 상점을 만드는 팀에게는 '주문', 종교 단체의 역사를 보여주는 앱을 만드는 팀에게는 '교단'을 의미

반드시 팀의 모든 사람이 각 단어의 뜻을 알고 일관성 있게 사용해야 한다.
특별한 의미가 있는 단어를 모두 모은 **프로젝트 용어 사전**을 만드는 방법도 있다.

의도를 제대로 표현하지 못하거나 오해를 부를 수 있거나 헷갈리는 이름을 발견했다면 고쳐야 한다.
특별한 의미가 있는 단어를 모두 모은 **프로젝트 용어 사전**을 만드는 방법도 있다.
> 회사 노션에 용어 사전 테이블 하나 만들어서 '국문, 영문, 설명, 결정 근거'를 작성하고 있어요.
> API, 코드 레벨에서 용어를 통일할 수 있다는 점이 좋은 것 같아요.
의도를 제대로 표현하지 못하거나 오해를 부를 수 있거나 헷갈리는 이름을 발견했다면 고쳐야 한다.
> 이것도 제가 담당했던 업무 중 하나네요😅
> 처음에는 prediction model이라는 용어를 사용했는데,
> 기능이 확장되면서 더 큰 개념을 가지는 machine learning으로 수정한 경험이 있습니다.

0 comments on commit 1d50da6

Please sign in to comment.