Skip to content

Commit

Permalink
신승준 7장 (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
metacode22 authored Sep 9, 2024
1 parent e00d87e commit 5791a7c
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions 7장/신승준.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# 코딩하는 동안

## 우연에 맡기는 프로그래밍

### 암묵적인 가정

모든 차원에서 사람들은 마음 속에 많은 가정을 품고 작업한다. 하지만 이런 가정을 문서화하는 경우는 드물다.

> 그저 문서화라는 단어가 나와서 문득 궁금해진 것인데요! 다들 문서화를 많이 하시나요? 개발이 끝나고 나서도 작업한 것에 대해 문서화를 하시나요? 저희는 스타트업이고 빠르게 일을 쳐내야 하다보니까 문서화가 잘 안 되어 있어서 혼란을 겪은 적이 많았어요.
## 알고리즘의 속도

### 실전에서의 알고리즘 속도

최고라고 언제나 최고는 아니다. 성급한 최적화를 조심해라. 알고리즘을 개선하느라 귀중한 시간을 날리지 마라.

> 전 너무 안 해서 문제인 것 같아요. ㅎㅎㅎ...
## 리팩터링

### 리팩터링은 언제 하는가?

무엇이든 '잘못'되었다는 생각이 들 때가 있을 것이다. 주저하지 말고 변경하라.

> 이전에 준환님 덕분에 VSCode에서 F2 단축키로 같은 레퍼런스의 변수명을 한 번에 바꿀 수 있다는 걸 알게 됐었어요. 이거 덕분에 이름 변경할 때 많이 주저하지 않게 된 것 같아요.
## 테스트로 코딩하기

### 테스트 문화

제대로 된 테스트 문화를 가졌다면 모든 테스트가 언제나 통과해야 한다.

> 이거 보고 삘 받아서 계속 실패하고 있던, 꺠진 창문 같았던 CI들을 모두 성공하도록 수정해버렸어요.
## 바깥에서는 안전에 주의하라.

### 공격 표면을 최소화하라.

입력 데이터는 공격 매개체다.

디버깅 정보는 공격 매개체다. ATM 기계 화면이나 공항 키오스크, 웹 브라우저 화면에 난데없이 긴 스택 트레이스와 데이터가 가득 나타난다.

> 같은 맥락에서 console.log 좀 지우라는 게 생각 났어요. [NextJS Compiler - removeConsole](https://nextjs.org/docs/architecture/nextjs-compiler#remove-console) 요걸로 지워진 상태로 배포시킬 수 있을 것 같아요.
### 민감 정보를 암호화해라.

키나 암호는 빌드나 배포 프로세스 내 설정 파일이나 환경 변수로 관리한다. 더 좋은 방법은 별도의 서비스로 관리하는 것이다.

> 이 때 별도의 서비스 예시로 AWS Parameter Store나 Secret Manager를 들 수 있을까요?
### 잘못된 비밀번호 사례

인증되지 않은 사용자에게 비밀번호 힌트를 제공하거나 "당신의 첫 번째 애완동물의 이름은 무엇인가요?" 같이 즉정한 정보를 물어보지 말라.

> 예전에 많이 본 것 같은데, 요즘엔 못 본 것 같아요.
> 킹 받는 사례가 참 많네요.
인위적인 제약을 걸면 무작위도를 낮추고 나쁜 비밀번호 습관을 부추겨 오히려 보안에 위험이 된다!

## 이름 짓기

### 일관성

모든 프로젝트에는 팀 내에서 특별한 의미가 있는 용어들을 비롯하여 고유의 어휘들이 있다.

반드시 팀의 모든 사람이 각 단어의 뜻을 알고 일관성 있게 사용해야 한다.

> isOpen처럼 is 붙이는 게 팀 규칙이었는데요, 혼자 오픈 소스 코드 보고 open이라고 쓰곤 했었던 저를 반성합니다.

0 comments on commit 5791a7c

Please sign in to comment.