일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- elastic search
- hibernate
- intellij
- Hbase
- SBT
- hdfs
- Spring
- Gradle
- Angular2
- Linux
- 도메인주도설계
- docker
- Spring XD
- Spring Boot
- hadoop
- DDD
- 제주
- design pattern
- spark
- Java
- 엘라스틱서치
- scala
- elasticsearch
- Spring Batch
- 스프링 배치
- nginx
- Storm
- 인텔리J
- apache storm
- Clean Code
- Today
- Total
목록전체 글 (306)
욱'S 노트
적절한 행 길이를 유지하라. Fitness의 경우 5000줄이 넘는 거대한 시스템이지만 각각의 클래스를 200줄 안팎으로 유지할 수 있었다. 시스템이 크다고 개별의 클래스의 코드가 길어질 이유는 없다. 신문 기사처럼 작성하라. 소스 파일도 신문 기사와 비슷하게 작서한다. 이름은 간단하면서도 설명이 가능하게 짓는다. 소스 파일 첫 부분은 고차원의 개념과 알고리즘을 그리고 아래로 내려갈수록 의도를 세세하게 묘사한다. 개념을 빈 행으로 분리하라. 패키지 선언부, import문, 각 함수 사이에 빈행이 들어간다. 간단한 규칙이지만 심오한 영향을 미친다. 세로밀집도 줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다. 즉 서로 밀집한 코드의 행은 세로 가까이 있어야 한다. 변수는 사용하는 위치에 최대한 가..
코드는 항상 변화하고 진화한다. 불행하게도 주석은 언제나 따라 가지는 않는다. 주석은 필요악이다. 주석은 나쁜 코드를 보완하지 못한다. 자신이 저지른 난장판을 주석으로 설명하려 하는 대신에 그 난장판을 깨끗이 치워라. 코드로 의도를 표현하라. 코드를 주석으로 설명하지 말고, 더 명확하게 클래스나 함수로 표현해라. 좋은 주석 라이선스에 관한 주석을 붙이는 것은 타당하다. 의도를 설명하는 주석은 옳을 수 있다. 앞으로 할 일을 TODO 주석으로 남겨두면 편하다. 공개 API를 구현했다면 Javadocs를 남겨야 한다. 나쁜 주석 주절거리는 주석.코드의 내용을 그대로 설명하는 주석은 필요가 없다.자바docs를 만들기 위한 의무적인 주석도 좋지 않다. /**** @param title CD 제목*/ 이력을 기록..
작게 만들어라 함수의 첫번째 규칙은 작게, 두번째 규칙도 작게이다. public static String renderPageWithSetupsAndTearDowns (PageData pageData, boolean isSuite) throws Exception {if (isTestPage(pageData))includeSetupAndTearDownPages(pageData, isSuite);return pageData.getHtml();} 블록과 들여쓰기는 최대한 작아야 한다. if/else/while 이 들어가는 블록은 한 줄이어야 한다. 함수의 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. 한가지만 해라. 버퍼를 생성하고 상속된 페이지를 검색하고, 경로를 랜더링한다면 각각을 함수의 쪼개라. 함수를..
Yum은 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자입니다. Yum은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있습니다. Red Hat Enterprise Linux 5에서는 Yum으로 패키지를 설치합니다. Yum은 /etc/yum.conf라는 설정파일을 사용합니다. 자세한 내용은 yum(8) man page를 참조해주시길 바랍니다. 패키지 repository를 설정하는 여러가지 방법이 있습니다.• 이미존재한 repository를 추가하여 패키지를 얻는 방법• 새로운 repository를 설정하여 ISO에서 패..
컨트롤러는 어플리케이션 레이어와의 연결을 제공한다. 서비스 인터페이스를 통해서 일반적으로 정의된다. 컨트롤러는 유저 입력을 인터프리터하고 모델로 변환한다. 모델은 뷰로서 유저에게 표현된다. 스프링은 추상화된 방법으로 컨트롤러를 구현한다. 컨트롤러는 매우 다양한 방법으로 생성될 수 있다. 스프링 2.5에서 MVC 컨트롤러를 위한 어노테이션 기반 프로그래밍 방법이 소개되었다. 어노테이션은 Spring MVC와 Protlet MVC에서 모두 이용가능하며 특정한 베이스 클래스나 특정한 인터페이스를 구현할 필요가 없다. 더욱이 Servlet이나 Porlet API에 직접적인 디펜던시를 가지지 않아서 쉽게 서블릿이나 Portlet 기능에 접근할 수 있다. @Controllerpublic class HelloWorl..