전체보기(316)
-
[2019.02.09] 클린 코드 (TDD, 클래스)
TDD 테스트 코드 = 함수 이름 앞에 test를 붙여서 명명 TDD 법칙1. 실패하는 단위 테스트를 찾을 때까지 코드를 작성하지 않는다.2. 컴파일은 성공하면서 실행이 실패하는 단위테스트를 작성한다.3. 현재 실패를 통과할 정도로의 코드를 작성한다. 테스트를 실제 코드 작성전에 작성해야하는 이유는 실제 코드가 테스트 불가능하게 설계될 위험이 있기 때문이다. 테스트 코드도 깨끗해야한다.테스트 코드들이 중복이 심하다면 이를 엮을 방법을 생각해라.예를들어 Build-operate-check 패턴을 적용하면 중복을 없앨 수 있다.마찬가지 Template-Method 패턴을 적용하면 중복을 없앨 수 있다. 테스트당 assert 문은 하나만 넣어라. 테스트 작성법public void test~(){given~()..
2019.02.09 -
[2019.02.09] Retrofit 요약
1.매니페스트에 인터넷 통신을위한 권한 허용 2. Gradle을 이용하여 Retrofit을 설치 dependencies {implementation 'com.google.code.gson:gson:2.7'implementation 'com.squareup.retrofit2:retrofit:2.1.0'implementation 'com.squareup.retrofit2:converter-gson:2.1.0'} 3. DTO 작성 public class Member {private String id;private String name;public String getId(){ return id; }public String getName(){ return name; }} 4. Service 작성 public in..
2019.02.09 -
[2019.02.09] 클린코드 (오류, 경계)
오류 if문에 의한 오류처리를 피해라.try catch finally를 이용해라. try catch finally는 일종의 트랜잭션처럼 여겨야한다.try 에서 뭔짓을 하던 오류가나면 catch에서 롤백해줘야한다, 미확인 예외 처리를 안하면 OCP를 위반한다미확인 예외 처리도 해줘라. 오류처리 메카니즘이 동일한 오류들이 있다면 이를 Wrapper 클래스로 묶는 것을 고려해라 특정 객체를 조회해서 받아와야하는 함수가 있을 때 오류가 발생하면 null 을 반환하게 하지마라null 을 반환하게해서 오류처리하는 것보다는 empty 객체를 반환해서 정상동작은 되게해라이렇게 만들어진 empty 객체는 특수 사례 객체라고 부른다. 마찬가지로 null을 전달하지마라if(object1 == null)throw Invali..
2019.02.09 -
[2019.02.06] 클린 코드 (형식, 객체)
형식 코드가 200줄 안인 작은 파일이 이해하기 쉽다.마찬가지로 한줄이 짧을 수록 이해하기 쉽다. 함수사이는 개행을 한줄 넣어서 분리하라 밀접한 개념은 가까이 둬라 protected 변수는 피해라밀접한 개념이 한 파일에 속하지 못하게 한다. 상수는 사용하는 지점에 바로 사용할 경우 너무 저차원에 배치되어 묻히는 경우가 있을 수 있다.그러므로 적절한 수준에 두고 사용이 필요한 함수로 상수를 넘겨주는 방식이 더 좋다. 지역변수 선언은 사용하는 위치의 최대한 가까이에 둔다.멤버변수 선언은 클래스 맨 처음에 두며 개행으로 변수간에 거리를 두지않는다.종속함수는 A함수가 B함수를 선언하는 경우 B함수를 말하는데 호출 순서에 맞춰 배치하라 띄어쓰기를 이용해서 요소를 분명히 나눠라function( A, B ) -> f..
2019.02.06 -
[2019.02.04] 클린 코드 (변수,함수,주석)
깨끗한 코드의 중요성 코드는 그 자체로 훌륭한 요구명세가 되여야한다. 르블랑의 법칙 : 나중은 절대 오지 않는다. 그러므로 코드는 진지하게 짜야한다. 전문가 = 나쁜 코드의 위험을 인지하고 코드 개선을 위한 시간이 필요함을 주장할 수 있는 사람 코드는 사실 기반의 필요한 내용만 있어야한다. 보이스카우트 규칙 : 캠프장에 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라그러므로 코드를 수정하면 깨끗한 코드로 정리해놓고 떠나라 변수 이름 진짜 리스트가 아니라면 변수 이름에 list가 들어가는 것을 피해라 ( list -> group ) 발음하기 쉬운 변수 이름을 사용해라 ( ymdt -> tiemstamp ) 문자 하나를 사용하는 상수와 이름을 피해라 나중에 검색할 때 찾기 힘들다.단 for문에 들어가는 i,j,..
2019.02.06 -
[2019.01.30] Dockerfile
Dockerfile 명령어 요약 비고 FROM 베이스 이미지 지정 WORKDIR 경로이동 = cd RUN 쉘 커맨드로 명령 실행 ENV 환경변수 지정 EXPOSE 외부에 노출하는 포트 지정 주로 쉘을 이용한 환경 설치 CMD 도커 컨테이너가 시작할 때 실행할 커맨드 지정 복수개 사용 가능 ENTRYPOINT 도커 컨테이너가 시작할 때 실행할 메인 커맨드 지정 하나만 사용 가능 MAINTAINER 이미지 생성자의 정보 입력 USER 명령을 실행할 사용자 지정 ADD 파일을 이미지에 추가 압축 풀기등 후처리 가능 COPY 파일을 이미지에 복사 VOLUME 파일을 컨테이너가 아닌 컨테이너를 실행시킨 호스트에 저장 LABEL 라벨 지정 ARG 이미지를 빌드할 때 설정할 옵션 지정 SHELL 기본 쉘 변경 ONB..
2019.01.30