반응형 전체 글39 Clean Code 짜기5 -주석 // /**/ 복잡하고 주석이 많이 달린 코드보다 표현력이 풍부하고 깔끔하고 주석이 거의 없는 코드가 더 좋다 코드만으로 의도를 표현하기 어려운경우 주석을 달아야 한다. // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && (employee.age >65)) ---- if (employee. isEligibleForFullBenefits()) 위 두 코드를 보면 코드로 의도를 표현하는데 의도가 많은경우 주석으로 달려는 설명을 함수로 만들어 표현한 것이다. 기본적인 정보를 주석으로 제공하면 편리하다 // 테스트 증인 Responder 인스턴스를 반한한다. protected abstract Responder responderIns.. 2019. 10. 24. DataTables 사용해서 각종 기능을 가진 테이블 만들기 DataTables 스크립트 cdn을 사용해서 간단하게 paging, ordering, info 등 여러가지 기능을 가져와 테이블을 간단하게 구성할 수 있다. 상단에 css를 적용시키고, 테이블을 추가해준다. 마지막으로 스크립트를 사용해주면 간단하게 끝난다. 결과물로는 이렇게 페이징등 각종 기능들을 사용하는 테이블이 만들어진다. 페이징과 오더링, 인포 기능을 없애려고 한다면 해당 구문을 추가해주면 결과물은 이렇게 기능들을 false로 없앨수 있다. 참고 https://datatables.net/ 2019. 10. 23. Clean Code 짜기4 명령과 조회를 분리해야한다. 함수 수행시 명령과 조회를 동시에 하게 되면 혼란을 초래해 코드 확인시 해석이 어려울수 있다. public boolean set(String attribute, String value); if (set("username", "userA")) attribute인 속성값을 찾아 value로 설정한 후 성공-true 실패 - false 반환 코드이다. 코드를 해석하는 입장에서는 "username" 이 "userA"으로 설정된건지 확인하는 코드인지 아니면 "username"을"userA"로 설정하는 코드인지 혼란이 온다. "set" 이라는 단어가 동사인지 형용사인지 분간하기 힘들기 때문이다. 해결책은 코드를 명령과 조회를 분리해서 짜는 방법이 있다 . if (attributeExis.. 2019. 10. 22. Clean Code 짜기3 함수 인수 가장 이상적인 인수 개수는 0개(무항), 다음 1개(단항), 다음 2개(이항), 3개부터는 가능한 사용하지 않는게 좋다. 인수가 많아질수록 인수마다 유효한 값으로 모든 조합을 구성해 테스트하기가 힘들어진다. 함수에 인수 1개를 넘기는 경우는 1. 인수에 질문을 던지는 경우 boolean fileExiste("MyFile") 2. 인수를 뭔가로 변환해 결과를 반환하는 경우 InputStream fileOpen("MyFile")은 String 형의 파일 이름을 InputStream으로 변환한다. 함수 이름을 지을 떄는 두 경우를 분명히 구분한다. 이벤트 함수는 입력 인수만 있다. 프로그램은 함수 호출을 이벤트로 해석해 입력 인수로 시스템 상태를 바꾼다. passwordAttemptFailedNti.. 2019. 10. 21. Clean Code 짜기2 함수 당 추상화 수준은 하나로 한 함수 내에 추상화 수준을 섞으면 코드 해석에 많은 어려움이 생긴다. 추상화 수준이 높음 - getHtml() 추상화 수준이 적당함 - String pagePathName = PathParser.render(pagepath); 추상화 수준이 낮음 - append("\n") 코드는 위에서 아래로 한 함수 다음 추상화 수준은 한 단계 낮은 함수가 오도록 한다. ( TO 문단을 읽듯이 프로그램이 읽혀야 함) - 내려가기 규칙 추상화 함수의 핵심 - 짧으면서도 '한 가지'만 하는 함수 ------------------------------------------ 직원 유형에 따라 다른 값 계산해 반환하는 함수 public Money calculatePay(Employee e) th.. 2019. 10. 21. Clean Code 짜기 1 Clean Code를 짜기위해선 변수명, 클래스, 함수 같이 어떠한 곳에 쓰이는 것들의 의도를 분명하게 지어 쓰이는 의도를 정확하게 알고 이름 지은것만 봐도 어떠한 역할을 하는지 분명하게 짓는게 좋다. 변수, 함수, 클래스 이름은 존재 이유, 수행기능, 사용 방법 이러한 질문들의 대답을 이름만 통해서도 알아야한다 따로 주석이 필요하다면 의도를 분명히 드러내지 못해서라고 한다. ex) int abc; // 이번년도 글작성수 이 변수에서 abc는 아무 의미도 찾지못하고 주석을 통해 확인이 가능하다 int thisYearPostsContents; 이렇게 의도가 드러나도록 하면 변수명만 보고서 어떠한 역할을 하는지 알 수 있다. 코드의 의미를 흐리는 단서는 쓰면 안된다 ex) hp, aix, sco 는 유닉스 .. 2019. 10. 13. MongoDB 간단하게 명령어 정리 1. show dbs (show databases) - 존재하는 모든 데이터베이스를 보여준다. 명령어를 입력시 admin, config, local, test 라는 데이터베이스를 가지고 있다고 뜬다. 2. use OOOO - 원하는 데이터베이스로 이동하기(입력한 데이터베이스가 없을 시 OOOO라는 데이터베이스가 새롭게 생성된다. 명령어 입력시 switched to db test 라고 뜨며 해당 데이터베이스로 이동된다. 3.show collections - 모든 컬렉션 리스트를 보여준다. show collections 명령어를 통해 customer에 컬렉션이 있다는걸 알 수 있다. 4.db.OOOO.find() - OOOO에 해당되는 데이터베이스 안에 있는 정보를 보여준다. show collections명.. 2019. 9. 2. Redis 기능 Redis는 '키-값' 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 NoSQL DBMS이다. In-memory data structure store - 캐시 방식을 통해 DB Read의 부하를 감소할 수 있다. (성능 및 처리속도 향상) 메모리의 데이터 액세스 탐색시간이 필요없고, 디스크보다 더 빠르고 예측 가능한 성능을 제공한다. Transactions - 트랜잭션의 모든 명령은 직렬화되고, 순차적으로 실행된다. Redis 서버가 충돌하거나, 잘못된 방법으로 시스템을 종료하면 일부작업만 등록되어 데이터 손실이 생길수 있다. Pub/Sub - 퍼블리셔와 가입자의 분리를 통해 확장성과 역동적이고 체계적인 네트워크 분류를 가능하게 한다. Pub/Sub는 키 영역과 관계가 없고, DB번호를.. 2019. 8. 26. Angular CLI 설치하기 Angular CLI를 프론트엔드 작업에 사용하기위해 설치하는 순서 및 정리 Angular CLI를 설치하기전에 Angular 앱 개발 환경인 Node.js와 npm 패키지 매니저가 설치되어 있어야 한다 터미널이나 콘솔창에서 node -v 명령으로 node의 버전이 안나오면 node가 안깔려져있다 이경우 nodejs.org에서 다운을 받아 다음 순서로 넘어갈 수 있다. 다음으로 npm 클라이언트 설치 여부를 확인해야함으로 npm -v 명령어로 확인이 가능하다. 다음으로 Angular CLI를 설치하는 단계이다. 전역범위에 설치하기 위해 npm install -g @angular/cli 를 터미널이나 콘솔창에 입력해 명령을 실행한다. 설치가 완료되면 ng new OOOOO명령을 실행해서 새 어플리케이션을 .. 2019. 8. 21. 이전 1 2 3 4 5 다음 반응형