728x90

Etc 36

[Clean Code] 8장 경계

8장 경계 시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물다. 오픈소스를 이용하거나 사내에 다른 개발팀이 제공하는 컴포넌트를 이용하거나, 어떤 식으로든 이 외부코드를 우리 코드에 깔끔하게 통합해야 한다. 이 장에서는 소프트웨어 경계를 깔끔하게 처리하는 기법과 기교를 살펴본다. 목차 외부 코드 사용하기 경계 살피고 익히기 log4j 익히기 학습 테스트는 공짜 이상이다 아직 존재하지 않는 코드를 사용하기 깨끗한 경계 8-1. 외부 코드 사용하기 패키지 제공자나 프레임워크 제공자는 적용성을 최대한 넓히려 애쓴다. 더 많은 환경에서 돌아가야 더 많은 고객이 구매하기 때문 반면 사용자는 자신의 요구에 집중하는 인터페이스를 바란다. 이러한 차이로 시스템 경계에 문제가 생길 소지가 많다. java.ut..

[Clean Code] 7장 오류 처리

7장 오류 처리 깨끗하고 튼튼한 코드에 다가가는 오류를 처리하는 기법과 고려 사항을 소개하는 챕터. 오류 처리는 프로그램에 반드시 필요한 요소 중 하나이다. 무언가 잘못될 가능성은 늘 존재한다. 무언가 잘못되면 바로 잡을 책임은 우리 프로그래머에게 있다. 오류 처리 코드로 인해 프로그램의 논리를 이해하기 어렵다면 깨끗한 코드가 아니다. 목차 오류 코드보다 예외를 사용하라 Try-Catch-Finally 문부터 작성하라 미확인( unchecked ) 예외를 사용하라 예외에 의미를 제공하라 호출자를 고려해 예외 클래스를 정의하라 정상 흐름을 정의하라 null을 반환하지 마라 null을 전달하지 마라 결론 7-1. 오류 코드보다 예외를 사용하라 예외 처리를 지원하지 않는 언어의 경우 호출자에게 호류 코드를 반..

[Clean Code] 6장 객체와 자료구조

6장 객체와 자료구조 다른 개발자가 변수에 의존하지 않도록 변수는 비공개( private )로 정의한다. 그렇다면 왜 조회( get )함수와 설정( set )함수를 당연하게 공개( public )해 변수를 외부에 노출할까? 객체는 동작을 공개하고 자료는 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기 쉬운 반면에 기존 객체에 새 동작을 추가하기는 어렵다. 자료구조는 별다른 동작 없이 자료를 노출한다. 그래서 기존 자료 구조에 새로운 동작을 추가하기는 쉽지만 기존 함수에 새 자료 구조를 추가하기는 어렵다. 목차 자료 추상화 자료/객체 비대칭 디미터 법칙 기차 충돌 잡종 구조 구조체 감추기 자료 전달 객체 활성 레코드 결론 6-1. 자료 추상화 변수 사이에 함수라는 계층을 넣는다고 구..

[Clean Code] 5장 형식 맞추기

5장 형식 맞추기 코드 형식을 맞추기 위한 규칙 정하는 방법을 알려주는 챕터. 협업을 한다면 서로 합의해 규칙을 정하고 참여 인원은 해당 규칙을 따라야 한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다. 목차 형식을 맞추는 목적 적절한 행 길이를 유지하라 신문 기사처럼 작성하라 개념은 빈 행으로 분리하라 세로 밀집도 수직 거리 세로 순서 가로 형식 맞추기 가로 공백과 밀집도 가로 정렬 들여쓰기 가짜 범위 팀 규칙 밥 아저씨의 형식 규칙 5-1. 형식을 맞추는 목적 코드의 형식은 중요하다. 너무 중요해서 무시하기 어려울 정도이다. 형식을 융퉁성 없이 맹목적으로 따르기 보다는 의사소통의 한 가지 방법으로 전문성 이있는 프로그래머의 일차적인 의무이다. 돌아가는 코드가 전문 개발자의 일차적인 의무라 여..

[Clean Code] 4장 주석

4장 주석 불가피하게 주석을 달아야 하는 경우에 주석을 작성하는 방법을 알려주는 챕터 나쁜 코드에 주석을 달지말고 새로 짜라. 주석은 코드의 의도를 표현함에 있어서 실패함을 의미한다. 변화하고 진화하는 코드에 주석은 따라가지 못한다. 목차 주석은 나쁜 코드를 보완하지 못한다 코드로 의도를 표현하라! 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 TODO 주석 중료성을 강조하는 주석 공개 API에서 Javadocs 나쁜 주석 주절거리는 주석 같은 이야기를 중복하는 주석 오해할 여지가 있는 주석 이력을 기록하는 주석 있으나 마나 한 주석 무서운 잡음 함수나 변수로 표현할 수 있다면 주석을 달지 마라 위치를 표시하는 주석 닫는 괄호에 다는 ..

[Clean Code] 3장 함수

3장 함수 3장 함수 함수를 잘 만드는 방법을 알려주는 챕터. 읽기 쉽고 이해하기 쉬운 함수가 왜 읽기 쉽고 이해하기 쉬운지 의도를 분명히 표현하는 함수를 구현하는 방법 읽는 사람이 프로그램 내부를 직관적으로 파악하게 하는 방법 목차 작게 만들어라! 블록과 들여쓰기 한 가지만 해라! 함수 내 섹션 함수 당 추상화 수준은 하나로! 위에서 아래로 코드 읽기: 내려가기 규칙 Switch 문 서술적인 이름을 사용하라! 함수 인수 많이 쓰는 단항 형식 플래그 인수 이항 함수 삼항 함수 인수 객체 인수 목록 동사와 키워드 부수 효과를 일으키지 마라! 출력 인수 명령과 조회를 분리하라! 오류 코드보다 예외를 사용하라! Try/Catch 블록 뽑아내기 오류 처리도 한 가지 작업이다 Error.java 의존성 자석 반복..

[Clean Code] 2장 의미있는 이름

2장 의미있는 이름 변수, 클래스, 함수등의 이름을 정하는 기준을 알려주는 챕터 변수, 클래스, 함수의 이름은 존재 이유, 수행하는 기능, 사용하는 방법등을 나타내는 표현이다. 부연 설명이 필요한 주석이 필요하다면 의도를 분명하게 드러내지 못했다는 의미이며 우리는 작명의 기준에 대해 재고해 봐야한다. 목차 의도를 분명하게 밝혀라 그릇된 정보를 피하라 의미 있게 구분하라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 인코딩을 피하라 헝가리식 표기법 멤버 변수 접두어 인터페이스 클래스와 구현 클래스 자신의 기억력을 자랑하지 마라 클래스 이름 메서드 이름 기발한 이름은 피하라 한 개념에 한 단어를 사용하라 말장난을 하지 마라 해법 영역에서 가져온 이름을 사용하라 문제 영역에서 가져온 이름을 사용..

[Clean Code] 1장 깨끗한 코드란??

1장 clean code란?? 1장 깨끗한 코드 깨끗한 코드를 작성해야하는 목적과 이유를 소개하는 챕터 이 책을 완독하고 나면 좋은 코드와 나쁜 코드를 구분하는 능력 좋은 코드와 나쁜 코드를 구분하는 능력이 생김 나쁜 코드를 좋은 코드로 바꾸는 실력도 쌓인다. 목차 코드가 존재하리라 나쁜 코드 나쁜 코드로 치르는 대가 원대한 재설계의 꿈 태도 원초적 난제 깨끗한 코드라는 예술? 깨끗한 코드란? 우리들 생각 우리는 저자다 보이스카우트 규칙 프리퀄과 원칙 결론 참고 문헌 로버트 C 마틴 ( Robert C. Martin ) UML 표현 기법 , Agile 방법론을 창시한 저자. 1-1 코드가 존재 하리라 새로운 개발 언어가 나올수록 추상화 수준은 점점 높아지며 더불어 특정 응용 분야에 적합한 프로그래밍 언어..

[정처기] 소프트웨어 테스트 기법에 대해 알아보자!

화이트박스 테스트란?? ( White Box Test ) 화이트박스 테스트는 모듈의 원시 코드를 오픈한 상태에서 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법입니다. 화이트박스 테스트의 특징 화이트박스 테스트는 설계된 절차에 초점을 둔 구조적 테스트입니다. 보통 테스트 과정의 초기에 적용됩니다. 모듈 안의 작동을 직접 관찰한다. 원시 코드( 모듈 )의 모든 문장을 한 번 이상 실행함으로써 수행됩니다. 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어합니다. 화이트박스 테스트의 종류 기초 경로 검사 ( Base Path Testing ) 대표적인 화이트박스 테스트 기법입니다. 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수..

728x90