KODE VICIOUS 개발 지옥

이연진·2024년 1월 17일
0

book

목록 보기
3/35
post-thumbnail

"데이터는 저장소의 용량이 허용하는 만큼 계속 확장한다." - 파킨슨의 데이터 법칙

"필요하다면 코드의 일부를 복수하는 것이 기능 하나를 쓰기 위해 라이브러리를 추가하는 것보다 좋다. 의존성 위생 관념이 코드 재사용보다 우선이다." - 롭 파이크

" 모든 것을 가장 단순하게 해야 한다. 전보다 조금 단순해지는 정도가 아니라" - 알버트 아인슈타인

"좋은 프로그래밍은 99퍼센트의 달콤함과 1퍼센트의 커피로 구성되어 있다."

" 우리는 건초 더미에서 바늘을 찾고 있습니다." - 모든 디버깅 작업의 시작 단계

"표절하라! 다른 사람의 작품을 하나도 그냥 흘려보내지 말아라. 신계서 왜 눈을 주셨는지 잊지 말아라. 한시도 눈을 닫지 말고 표절. 표절. 표절하라. 그렇게 만든 것을 '연구'라고 부르는 것을 잊지 말아라" - 톱 레러

코딩 시 주의해야 할 점

  • 형편없는 주석

  • 매달린 else 문

  • 매직넘버

  • 덜렁거리는 코드 똥 덩어리

  • 전역 변수 주의

"의도하는 것을 말하고, 말하는 것을 의도해라."

"과학의 좋은 점은 당신이 그걸 믿든 안 믿든 그것이 사실이란 점입니다." - 닐 디그래스 타이슨

"재빠르게 행동하고 무언가를 박살내라"

https://www.agner.org/optimize/instruction_tables.pdf

"바보들은 복잡성을 무시하고, 실용주의자들은 감내하며, 전문가들은 회피하며, 천재들은 제거한다." - 앨런 펄리스

http://www.gnu.org/software/global/

http://ctag.sourcrforge.net

http://cscope.sourceforge.net/

https://valgrind.org

보약 취약점 방어 방법

  • 아무도 믿지 말 것

  • 당신 스스로도 믿지 말 것

"잘못된 문서화는 때론 문서가 없는 경우보다 나쁩니다." - 베르트랑 마이어

"테스트는 보이지 않는 것부터 모호한 것들까지 저울질하는 과정으로, 누군가에게 생각지도 못한 일이 발생하는 것을 방지합니다." - 제임스 바흐

"당신이 들여다 보고 있는 코드에서 에러를 찾기는 힘듭니다. 거기에 이미 에러가 없다고 가정하고 있다면 더욱이요." - 스티브 맥코넬

"머지는 일찍, 자주 하도록'"

하이젠버그(Heisenbugs)

"누군가가 당신의 비밀번호를 훔쳐간다면 바꾸면 그만이다. 그렇지만 누군가가 당신의 지문을 훔쳐갔다고 해서 손가락을 바꿀 수는 없다. 이처럼 관리 실패의 결과는 매우 다르다." - 브루스 슈나이어

"컴파일러에게 거짓말을 하면, 컴파일러는 반드시 복수합니다." - 헨리 스펜서

프로그램은 한 가지를 위해 작성되고 잘 동작해야 한다.

프로그램들은 서로 협력할 수 있어야 한다.

텍스트 스트림은 범용 인터페이스이므로 프로그램은 텍스트 스트림을 처리 할 수 있어야한다.

탑다운 / 바텀 업

"프로그래밍 기술은 많은 경우의 수를 정복하고 끔찍한 혼란을 가능한 한 효율적으로 회피하는 것을 통해 복잡성을 정리하는 기술이기도 하다." - 에츠허르 데이크스트라

"데이터가 지배합니다. 만약 여러분이 올바른 데이터 구조를 선택하고 잘 정리했다면, 알고리즘은 거이 자명할 것입니다." - 롭 파이크

" 프로그램은 90퍼센트 이하의 완성도를 갖는 경우가 없으며, 95퍼센트 이상의 완성도를 갖는 경우도 없습니다." - 테리 베이커

" 크고 갑작스러운 변화만큼 인간의 마음에 고통스러운 것은 없습니다." - 메리 W. 셸리

https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf

"보안은 마음의 상태일 뿐입니다." - NSA 보안 매뉴얼

"우린 전산화된 개인 데이터를 무기급 플루토늄처럼 취급해야 합니다. 이것은 위험하고, 오래 잔류하며, 한번 밖으로 유툴되면 돌이킬 수 없습니다." - 코리 닥터로

입력의 유효성 검사 메타 문제는 사용자 입력을 처리할 때 시스템 디자인에서 제공하는 세가지

  • 입력을 실행하는 영역에 사용자 입력을 그대로 전달하지 마세요

  • 모든 사용자 입력은 알려진 양호한 패턴과 일치시키세요

  • 당신이 사용하는 언어에 내재된 위생 절차를 준수하세요

"인터넷에서 암호화를 사용하는 건 신용카드 정보를 방탄차에 실어 공원 벤치에서 박스를 뒤집어쓰고 사는 사람한테 배달하는 것과 같다." - 진 스패퍼드

러스티의 규칙

  • 공격자가 볼 수 있는 모든 것들은 공격자가 조작 할 수 있다

  • 사용자가 아는 것, 할 수 잇는 모든 것은 외부로 유출된다.

  • 당신의 해결책은 오직 처음에만 통한다.

" 사람들이 명확한 무언가를 디자인 할 때 흔히 하는 실수는 완벽한 바보의 창의성을 간과하는 것입니다." - 더글러스 애덤스

" 세상에서 가장 안전한 코드는 작성되지 않은 코드입니다." - 콜린 퍼시벌

"만약 JAVA가 정말 가비지 컬렉션을 수행한다면, 대부분의 프로그램들은 실행과 동시에 스스로를 삭제할 것입니다." - 로버트 세웰

https://www.speedguide.net/bdp.php

"관료제는 공공서비스를 위해 고안된 것이지만 일 자리를 잡으면 지적 생물체처럼 자라나서 대중을 마치 적으로 간주하게 된다.' - 브룩스 앳긴슨

"표준의 멋진 점은 선택할 수 있는 것들이 매우 많다는 점이다. 만약 그중 무엇 하나 맘에 들지 않는다면 1년만 더 기다리면 된다." - 그레이스 머레이 호퍼 제독

"문제가 무엇이건 간에, 언제나 사람이 문제입니다." - 제럴드 M. 와인버그

"완벽함이란더 이상 더할 것이 없을 때가 아니라, 더 이상 버릴 것이 없는 상태이다." - 앙투안 드 생텍쥐페리

"시스템 구성도를 그려봐 주시겠어요?" - 면접에서 가장 중요한 질문 첫번째

"일하는 자들을 괴롭히는 숙명은 사람의 쇠퇴가 곧 그들이 만들거나 판매하는 물건의 쇠퇴를 야기한다는 점일 겁니다." - 스터즈 터클

" 일시적인 조치만큼 영구적인 게 없더라." - 카일 심슨

0개의 댓글