일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- table full scan
- 조인
- 오라클
- Oracle
- 리트코드215
- heapq
- 친절한SQL튜닝
- 오라클튜닝
- B*Tree인덱스구조
- SQL튜닝의시작
- intellij
- clean code
- RAC
- B*Tree
- B*Tree인덱스
- 로버트C마틴
- db
- 클린 코드
- SQLD
- database
- 클린코드
- 파이썬
- join
- index fast full scan
- SQLP
- 알고리즘
- 결합인덱스구조
- 데이터모델링
- 리눅스
- leetcode215
- Today
- Total
목록클린코드 (4)
개발노트
목차 8장 경계 외부 코드 사용하기 경계 살피고 익히기 학습 테스트는 공짜 이상이다 아직 존재하지 않는 코드를 사용하기 깨끗한 경계 Intro 시스템에 들어가는 모든 소프트웨어를 "직접" 개발하는 경우는 드물다. 패키지를 사거나, 오픈소스를 이용하거나, 다른 팀이 제공하는 컴포넌트를 사용한다. 어떤 식으로든 이러한 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다. 이 장에서는 소프트웨어 경계를 깔끔하게 처리하는 기법과 기교에 대해 알아보자. 소프트웨어 경계에 대해 이해가 되었는가??? 이 장에서 말하는 경계는 "외부코드" 또는 "외부 라이브러리", "외부 API" 를 의미하는 듯 하다. 외부 코드 사용하기 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의하자..
목차10장 클래스 클래스 체계 캡슐화 클래스는 작아야 한다! 단일 책임 원칙 응집도 Cohesion 응집도를 유지하면 작은 클래스 여럿이 나온다 변경하기 쉬운 클래스 변경으로부터 거리 Intro이전 챕터에서는 코드, 코드 블록, 함수 구현 방법과 함수 간의 관련 맺는 방식을 공부했다. 하지만 좀 더 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기 어렵다. 그러니 클래스에 대해 자세히 알아두자. 클래스 체계클래스는 아래와 같은 순서로 코드를 작성하자. 1) static 변수 : public → protected → package → private 2) instance 변수 : public → protected → package → private 3) 생성자 4) 메서드 : (public → privat..
목차 6장 객체와 자료 구조 자료 추상화 자료/객체 비대칭 디미터 법칙 자료 전달 객체 결론 객체는 자료를 숨기고 동작을 공개하며, 자료 구조는 자료를 공개한다. Intro 변수를 private(비공개)로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 변수 타입이나 구현을 맘대로 바꾸고 싶어서다. 그렇다면 어째서 수많은 프로그래머가 조회(get)함수와 설정(set)함수를 당연하게 public(공개)으로 선언해서 외부에 노출하는 걸까? 자료 추상화 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 인터페이스나 get/set 함수만으로는 추상화가 이뤄지지 않는다. 아래 2개의 클래스는 모두 2차원 점을 표현하였다. 목록 6-1) 구체적인 클래스 - 구현을 외부로 노..
리팩토링 외부 동작은 변경하지 않고, 내부 구조를 변경하는 작업이다. 따라서, 버그 수정/기능 추가는 리팩토링에 포함되지 않는다. 왜냐? 결과가 바뀌니깐! 그리고 기능을 추가하기 전에, 리팩토링을 먼저 하자. 가독성 향상과 유지보수가 용이해지기 때문에 기능 추가가 훨씬 수월하다. 프로젝트 초기 아키텍트 설계가 완벽하더라도, 기능 추가와 버그 수정들이 있다면 설계는 점차 무너지게 된다. 따라서 리팩토링은 지속적으로 필요하다. 리팩토링은 개발자의 관점에 따라 주관적이다. 자신의 논리적 판단을 근거로 코드를 수정하는 작업이기 때문이다. 리팩토링의 목적 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것(→ 가독성이 좋은 클린한 코드 짜기)이다. 이는 개발 속도를 빠르게 해준다. 리팩토링은 성능을 최적화시키..