본문 바로가기

STUDY REVIEW

(21)
[EFFECTIVE JAVA] 이펙티브 자바 독서스터디 - 4장 클래스와 인터페이스 4장 클래스와 인터페이스 아이템 15. 클래스와 멤버의 접근 권한을 최소화하라 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 아이템 17. 변경 가능성을 최소화하라 아이템 18. 상속보다는 컴포지션을 사용하라 아이템 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 아이템 20. 추상 클래스보다는 인터페이스를 우선하라 아이템 21. 인터페이스는 구현하는 쪽을 생각해 설계하라 아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라 아이템 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 아이템 24. 멤버 클래스는 되도록 static으로 만들라 아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라 읽고 느낀 점 재밌는 예제와..
[EFFECTIVE JAVA] 이펙티브 자바 독서스터디 - 3장 모든 객체의 공통 메서드 3장 모든 객체의 공통 메서드 아이템 10. equals는 일반 규약을 지켜 재정의하라 아이템 11. equals를 재정의하려거든 hashCode도 재정의하라 아이템 12. toString을 항상 재정의하라 아이템 13. clone 재정의는 주의해서 진행하라 아이템 14. Comparable을 구현할지 고려하라 읽고 느낀 점 나한테 equals은 if문에만 쓰는 용도였는데, 이걸 재정의하라니 다른 사람들은 어떻게 사용하는지 궁금해져 블로그들을 찾아보았다. 다들 이펙티브 자바 독서에만 사용하는 것 같다 ... 실력을 키워 검색능력을 키워야하는 것인가 아니면 코드를 창조해야하는 것인가 의문이 생겼다. toString은 예전 순수자바를 사용하는 회사에서도 재정의를 하여 쓰고 있어 이해가 잘되었다. 어찌되었든 ..
[EFFECTIVE JAVA] 이펙티브 자바 독서스터디 - 2장 객체 생성과 파괴 2장 객체 생성과 파괴 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 아이템 6. 불필요한 객체 생성을 피하라 아이템 7. 다 쓴 객체 참조를 해제하라 아이템 8. finalizer와 cleaner 사용을 피하라 아이템 9. try-finally보다는 try-with-resources를 사용하라 읽고 느낀 점 주간 회의를 하면서 생성자 대신 정적 팩터리 메서드에 대해 이야기가 나왔다. 이야기를 들어보니 한번 만들어놓으면 여러곳에서 중복 활용..
Clean Code - 4주차 이번 주 목차 17장 냄새와 휴리스 부록A 동시성Ⅱ 부록B org.jfree.date.SerialDate 부록C 휴리스틱의 교차 참조 목록 17장 냄새와 휴리스틱 - 주석 C1: 부적절한 정보 : 일반적으로 작성자, 최종 수정일, SPR번호 만 주석으로 넣는다. C2: 쓸모없는 주석 : 오래된 주석, 엉뚱한 주석, 잘못된 주석은 아예 달지 말자. C3: 중복된 주석 : 구구절절 설명하는 주석 달지 말자. C4: 성의 없는 주석 : 간결하고 명료하게 주석 달자. C5: 주석 처리된 코드 : 주석으로 처리된 코드는 즉각 삭제하자! - 환경 E1: 여러 단계로 빌드해야 한다 : 한 명령으로 전체를 체크아웃해서 한 명령으로 빌드할 수 있어야 한다. E2: 여러 단계로 테스트해야 한다 : 모든 단위 테스트는 한 ..
Clean Code - (3 - 2)주차 이번 주 목차 13장 동시성 14장 점진적인 개선 15장 JUnit 들여다보기 16장 SerialDate 리팩터링 13장 동시성 - 동시성이 필요한 이유? 동시성은 결합을 없애는 전략이다. 즉 무엇과 언제를 분리한다. 다음은 동시성과 관련한 일반적인 미신과 오해다. 1. 동시성은 항상 성능을 높여준다. (때로 성능을 높여준다. 대기 시간이 아주 길어 여러 스레드가 프로세서를 공유할 수 있거나, 여러 프로세서가 동시에 처리할 독립적인 계산이 충분히 많은 경우에만 성능이 높아진다.) 2. 동시성을 구현해도 설계는 변하지 않는다. (단일 스레드 시스템과 다중 스레드 시스템은 설계가 다르다.) 3. 웹 또는 EJB 컨테이너 등을 사용하면 동시성을 이해할 필요가 없다. (실제로는 컨테이너가 어떻게 동작하는지, 동..
Clean Code - 3주차 이번 주 목차 9장 단위 테스트 10장 클래스 11장 시스템 12장 창발성 9장 단위 테스트 - TDD 법칙 세 가지 첫째 법칙 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. - Clean Code 155 Page 인용 - 실제 코드와 맞먹을 정도로 방대한 테스트 코드는 심각한 관리 문제를 유발하기도 한다. 적당한 테스트 코드를 작성하자. 무리하지 말자. - 깨끗한 테스트 코드 유지하기 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. 단위 테스트란 테스트 코드이다? 유닛 테스트 (un..
Clean Code - 2주차 스터디 후기 5장 형식 맞추기 @RequestMapping(value = "/rowDataMngr/rowDataMngrIndex") public ModelAndView getRowData(HttpServletRequest request, HttpServletResponse response) throws Exception{ ModelAndView model = new ModelAndView("/view/rowDataDownMngr/row_data_mngr_index.jsp"); HashMap inMap = new HashMap(); try { bindForMap(request, inMap); Map companyInfoMap = rowDataMngrService.getCompanyList(inMap); model.ad..
Clean Code - 2주차 이번 주 목차 5장 형식 맞추기 6장 객체와 자료 구조 7장 오류처리 8장 경계 5장 형식 맞추기 - 형식을 맞추는 목적 코드 형식은 중요하다! 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. - Clean Code 96 Page 인용 - 그래서 우리 회사의 코드는 10년 전의 스타일을 그대로 유지하고 있다. 처음부터 스타일과 규율을 잘 잡는 코드습관을 가지도록 하자. - 적절한 행 길이를 유지하라 신문 기사처럼 작성하라. 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있..