Seonb2n

실용주의 프로그래머 5

구부러지거나 부러지거나 현대의 빠른 변화 속도를 따라가기 위해서는 느슨하고 유연한 코드를 작성해야 한다. 결합도 줄이기 좋은 설계 원칙을 따르면 바꾸기 쉬운 코드(ETC)를 만들 수 있다. 높은 결합도는 당연하게도 변경을 어렵게 만든다. 소프트웨어를 설계할 때는 형태를 유연하게 바꿀 수 있도록 설계해야 한다. 결합도가 낮은 코드가 바꾸기 ...

실용주의 프로그래머 4

실용주의 편집증 여러분은 완벽한 소프트웨어를 만들 수 없다. 세상에 완벽한 소프트웨어는 존재하지 않는다. 그래서 우리는 방어적으로 개발을 해야 한다. 문제가 생기기 전에 주의하고, 일어나지 않을 법한 일에 대비해야 한다. 조금이라도 의심이 들면 주어진 모든 정보를 확인한다. 잘못된 데이터를 찾아내기 위해 단정문을 사용하고, 공격자나 불량 사...

실용주의 프로그래머 3

기본 도구 모든 제작자는 좋은 품질의 도구 세트로 자신의 재능을 발휘한다. 좋은 도구는 재능을 증폭시키고, 생산성을 향상시킨다. 그러나 항상 필요에 따라서 새로운 도구를 취하는 것에 익숙해져야 한다. 일반 텍스트의 힘 실용주의 프로그래머로서 가장 중요한 재료는 지식이다. 우리는 지식을 저장하는 최고의 포맷인 일반 텍스트에 대해서 알아야한다. 일반...

실용주의 프로그래머 2

실용주의 접근법 소프트웨어 개발은 좋은 설계에 뿌리를 두고 있다. 시스템에서 중복을 제거하고, 파편화를 경계하라 환경의 변화로부터 프로젝트를 보호해야 한다. 요구사항을 모으고, 설계를 검증하고 코드 구현을 할 수 있는 예광탄 방식을 사용해보라 프로토타입의 사용을 고려해라 추상화된 언어의 사용법을 고민해라 추정을 통해 시간과...

실용주의 프로그래머 1

실용주의 철학 실용주의 프로그래머는 직면한 문제 너머를 고려한다. 실용주의 프로그래머는 자신이 하는 모든 일에 책임을 지며, 프로그젝트가 방치된 채로 끝장나는 것을 지켜보지 않는다. 실용주의 프로그래머는 변화를 두려워하지 않는다. 실용주의 프로그래머는 자신이 일하는 맥락을 이해하며, 자신의 소프트웨어를 훌륭하게 만들고자 한다. 실...

데이터베이스 설계 및 구축 4

데이터베이스 설계 및 구축(11-12장) 논리적 설계를 물리적 설계로 전환하기 물리적 데이터베이스 설계의 입력물은 논리적 ERD 이고 산출물은 물리적 RD 이다. 물리적 데이터베이스 설계의 산출물은 데이터베이스를 구축하는데 이용된다. 엔티티 to 테이블 논리적 ERD 상에서 엔티티라 부르던 것은 테이블이 된다. 속성 to 칼럼 논리적 설계의...

결제 로직 설계2

결제 로직 설계 결제 로직을 어떻게 구현할 수 있을지를 고찰해보고자 합니다. 재고 관리 결제가 완료되면 상품의 주문이 완료된 것이고, 결제가 취소되면 상품의 주문이 취소된 것입니다. 모든 상품은 ‘유한’한 개수의 제한이 있기에, 우리는 상품의 재고 관리를 해야만 합니다. 일반적으로, 티케팅을 하는 과정을 생각해봅시다. 상품의 결제 화면에 들어간...

데이터베이스 설계 및 구축 3

데이터베이스 설계 및 구축(8-10장) 정규화 정규화란 ERD 내에서 중복을 찾아 제거해 나가는 과정을 말한다. 동일한 정보는 한 곳에서만 관리해야하기 때문이다. 제 1정규화 제 1정규화란 엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때, 하나의 속성이 단일 값을 갖도록 하는 것을 말한다. 제 2정규화 제 2정규화는 주식별자가 아...

데이터베이스 설계 및 구축 2

데이터베이스 설계 및 구축(5-7장) 업무 분석 ‘논덩이 효과’ 라는 용어가 있다. 초기 단계에서의 실수일수록 파급효과가 크다는 말이다. 대상이 되는 업무를 알지 못하면 프로그램을 개발하는 것은 어려운 일이다. 시스템 개발을 의뢰한 회사에 대한 일반 사항을 이해해야 한다. 전체 업무를 분석하기에 적당한 크기로 나눈다. 각 서...