최근 웹 개발에 주로 사용하는 언어들은 garbage collecting 이 지원되는 언어들이기 때문에 메모리 자원 관리를 자동으로 해주는 편이지만 그렇지 않은 경우를 위한 리소스 할당과 해제에 관한 내용이다.실용주의 프로그래머 Tip 35시작한것은 끝내라이것은 단순히
유지보수가 유용한 코드를 만들기 위해서 코드를 작은 단위로 나눠 모듈화를 시킨다. 모듈화가 잘 된 코드의 경우 뛰어난 유연성과 가역성을 갖게 되고 특정 부분을 수정하더라도 다른 부분에 주는 영향을 최소화 시킨다. 이렇게 모듈간의 의존 정도를 줄이는것을 decouplin
외부 환경의 변화로 인해 코드를 자꾸 변경하게 되면 새로 코드를 짜는 일은 상당히 번거로운 일이고 새로운 버그가 발생 할 수 있다. 이러한 언제든지 변할 수 있는 세부 사항 (배경 색, 프롬프트 텍스트, 알고리즘의 선택, 사용할 데이터베이스 등)을 코드 밖으로 빼서 설
우리는 프로그램을 설계할 때 시간적 결합(temporal coupling). 을 만들게 된다. 예를 들어 메서드 A는 메서드 B보다 먼저 호출 되어야 한다 등의 제약이다. 만약 독립되어 실행 할 수 있는 작업은 동시성을 허용 할 필요가 있고 앞의 경우와 같은 시간적 결
이벤트를 이용하면 객체들 사이의 결합을 최소화 할 수 있다. 이벤트는 어떤 흥미를 갖을만한 일이 발생했다는 것이고 한가지 이벤트를 발생시키면 이벤트의 수신자는 저마다 중요하게 여기는 관점에서 각자 이벤트를 처리 할 수 있다. 다만 한가지 이벤트가 발생 했을때 모든 객체
어떤 시스템에 다양한 객체나 코드 모듈이 참여하고 그들의 관심사가 제각각이며 실행속도도 제각각인데 비동기적으로 처리되어야 하는데 이것을 구현하려면 각각의 상황마다 처리 순서를 다르게 해줘야 하고 상호작용하는 모듈마다 인터페이싱를 각각 제작 해 줘야 하는데 이렇게 하면
"요구사항의 수집" 은 "수집" 이라는 단어를 사용해서 이미 널려있는 요구사항을 주워담기만 하면 된다는 느낌을 주지만 실제로는 "수집" 의 느낌보다는 요구사항은 보이지 않는 땅속에 묻혀있는것과 같아 "채굴" 에 더 가깝다고 한다. 요구사항 채굴하기 요구사항은 어떤