| 7. 오류 처리 오류 처리는 중요하다.하지만, 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. || 오류 코드보다 예외를 사용하라-- 오류 코드를 사용하게 되면 논리가 오류 처리 코드와 뒤섞여버린다. > 예외를 사용한 코드 12345678910111213141516171819202122232425262728public class DeviceController { // ... public void sendShutDown() { try { tryToShutDown(); } catch (DeviceShutDownError e) { logger.log(e); } } private void tryToShutDown() throws DeviceShutDownError ..
| 6. 객체와 자료 구조-- || 자료 추상화-- 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 편이 좋다.- 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다.> Ex 1.123456789101112131415// 구체적인 Point Classpublic class Point { public double x; public double y;} // 추상적인 Point Classpublic interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double getTheta(); void setPolar(double r, double theta);..
| 5. 형식 맞추기-- || 형식을 맞추는 목적-- 코드 형식은 중요하다. 코드 형식은 의사소통의 일환이다.- 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.. || 적절한 행 길이를 유지하라.-- 적은 행 길이로도 커다란 시스템을 구축할 수 있다.- 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. ||| 신문 기사처럼 작성하라.- 소스 파일도 신문 기사와 비슷하게 작성하자. 이름은 간단하면서도 설명이 가능하게 짓는다.- 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사. 마지막에는 가장 저차원 함수와 세부 내역- 가장 중요한 개념을 가장 먼저 표현 ||| 개념은 빈 행으로 분리하라.- 빈 행은 새로운 개념을 시작한다는 시..
| 4. 주석--"나쁜 코드에 주석을 달지 마라. 새로 짜라." - Brian Wilson Kernighan, Phillip James Plauger * 주석이 코드에서 분리어 점점 더 부정확한 고아로 변하는 사례가 너무도 흔하다.* 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로, 애초에 주석이 필요 없는 방향으로 에너지를 쏟는 편이 좋다.* 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. || 코드로 의도를 표현하라!- > 주석으로 의도를 표현123// 직원에게 복지 혜택을 받을 자격기 있는지 검사if ((employee.flags & HOURLY_FLAG) && (Employee.age > 65))cs > 코드로 의도를 표현1if (employee.isEligibleForFullBenefi..
| 3. 함수 Summary.아무래도 가장 중요한 포인트는함수는 "짧게", "한 가지 작업만", "서술적 이름으로"조거문에 들어가는 블록은 한줄로... || 작게 만들어라! 123456public static String renderPageWithSetupAndTeardowns ( PageData pageData, boolean isSuite) throws Exception { if (isTestPage(pageData)) includeSetupAndTeardownPages (pageData, isSuite); return pageData.getHtml();}Colored by Color Scriptercs - if문/else문/while문 등에 들어가는 블록은 한 줄이어야 한다는 의미. (대개 이곳에서..
| 2. 의미 있는 이름 Summary.의미 있고 발음하기 쉽고 검색하기 쉽게 이름을 지어주자.(존재 이유, 수행 기능, 사용 방법이 드러나도록)... || 의도를 분명히--변수나 함수 그리고 클래스 이름은 아래 질문에 모두 답해야 한다1. 변수(함수 or 클래스)의 존재 이유는?2. 수행 기능은?3. 사용 방법은?* 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말.1234int elapsedTimeInDays;int daySinceCreation;int daySinceModification;int fileAgeInDays;cs 1234567891011121314151617// 의도가 분명하지 않은 코드public List getThem() { List list1 = new ArrayList ..
제 1장. SQL 기본 ㅇ SQL 문장들의 종류 - As-Is : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만 명세- To-Be : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만을 명세하지만, 절차적 데이터 조작어(PL/SQL(오라클), T-SQL 등)는 어떻게(How) 데이터를 접근해야 하는지 명세ㅇ WHERE- FROM 절 다음에 위치- 비교 연산자- 문자, 숫자, 표현식- 비교 칼럼명 (JOIN 사용 시) ㅇ 연산자 ㅇ 연산자 우선순위1. 괄호로 묶은 연산2. 부정 연산자(NOT)3. 비교 연산자(=, >, >=, 다중행 함수 : 집계 함수, 그룹 함수, 윈도우 함수- 사용자 정의 함수 ㅇ DUAL 테이블 특성- 사용자 SYS가 ..
제 1장. 데이터 모델링의 이해 ㅇ 엔티티- 유무형 1. 유형 : 물리적 형태 (사원, 물품)2. 사건 : 업무 수행에 따라 발생 (주문, 창구)3. 개념 : 관리해야할 개념적 정보 (조직, 장소)- 발생 시점1. 기본/키 : 원래 존재하는 정보 (사원, 부서)2. 중심 : 업무에 있어 중요한 역할 (접수, 계약)3. 행위 : 두 개 이상의 부모 엔티티로부터 발생 (주문내역, 계약진행) ㅇ 엔티티 특징- 필요로 해야하는 정보- 유일한 식별자에 의해 식별 가능- 인스턴스의 집합 (두 개 이상)- 업무 프로세스에 의해 이용되어야 함- 속성이 있어야 함 (두 개 이상) -> 한 개의 속성은 한 개의 속성값- 다른 엔티티와 최소 한 개 이상의 관계 ㅇ 엔티티 이름 부여- 협업 용어- 약어 사용 X- 단수명사- ..