본문 바로가기

Computer Science304

Clean Control Structure "Clean Control Structures" - 조건, 루프, 흐름을 제어하는 선언문 - Cyclomatic Complexity : 소스 코드의 복잡도를 나타내는 지표 - V(G) = edge의 수 - node의수 + 2 - V(G) = 분기문의 수 + 1 - 10, 25 이하 권고, 50은 넘어가면 테스트 불가능임 "읽기 쉬운 조건문" - 왼쪽에 궁금한 대상. - 왼쪽 항 : 값이 변경될 가능성이 높은 표현/주로 변수의 이름 - 오른쪽 항 : 값이 주로 고정 - 매직 넘버 그 의미를 알 수 없는 임의의 수 "Fail Fast, Early Return" - 가독성이 좋도록 중첩if 문을 개별 if 문으로 변경하는 것 - 빨리 실패하는 검증로직을 다시 method로 분리하고 예외를 사용함 - if(a=.. 2021. 5. 14.
Clean Formatting "Clean Formatting" - 코드는 사람이 읽도록 만들어지는 것이 우선 - 어떤 동작을 원하는지 사람에게 설명하는 것임 - 코드 라인 간의 간격/코드 그룹화 - 들여쓰기, 간격, 넓이 - 정적 분석을 통해서 가능함 "수직 Formatting 원칙" - Enter 사용 - 추상화의 수준 순서 - 서로 다른 개념은 분리 - 유사한 개념은 모아 놓음 - 관계 있는 내용은 가까운 행에 작성 - 코드를 읽기 위해 여러 번의 Jump를 하는 것을 방지 "수평 Formatting 원칙" - 약 80자 -> 최근에는 모니터가 크기가 커져 100자도 괜찮음 - 들여쓰기 - 한 줄의 긴 코드는 두 줄로 - 수평 정렬은 크기 중요하지 않음 google guide : never required "Summary" - .. 2021. 5. 14.
Clean Comment "Clean Comment의 원칙" - Comment는 필요악 - Comment보다 Code 그 자체가 의미가 있어야 함 "Bad Comment" - Code 자체를 개선해야 함. 코멘트로 이해 시키려고 하면 안됨. - 중복된 정보를 제공 하는 커멘트 - git 형상 관리로 안쓰는 code는 관리 해야 함. - 수정 이력을 남겨놓는 것들 또한 git에서 관리 하도록 해야 함 - Comment 자체가 bad smell임 "Clean Comment" - 저작권 명시 - 불가피하게 이름만으로 충분히 의미를 전달하기 어려운 경우 - TODO comment "Summary" 2021. 5. 14.
Clean Code chapter4.3~ (method) "작고 역할이 명확한 method" - 기본적인 라인수를 20라인을 넘기지 않도록 할 것 - 크기 만으로 함수의 품질을 판단 할 수 없다 - 중요한 것은 지속적인 개선 - Method 동작을 설명하기 위해 내부에 주석을 달아야 하면 Bad smell 임 "한 가지의 명확한 역할" - 한 가지의 일을 한다는 것이 정확히 어떠한 의미인가? - 하나의 method는 동일한 추상화의 수준만 가져야 한다. - Higher level code -> what - Lower level code -> how - Method의 이름이 책임지는 범위의 일만 해야 한다 "중복 코드" - 다수의 method의 구현부가 100% 일치하는 경우 - 불필요하게 코드 베이스를 크게 만듦 - 정적 분석 : 중복 코드를 찾아내는 정적 분.. 2021. 5. 14.
파이썬 데코레이터 dojang.io/mod/page/view.php?id=2454 파이썬 코딩 도장: 핵심 정리 데코레이터 데코레이터는 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용합니다. 먼저 데코레이터는 호출할 함수를 매개변수로 받고, 호출할 함수를 감싸는 함수 wrapper를 만듭니다 dojang.io 함수를 수정하지 않은 상태에서 추가 기능을 사용할 때 사용합니다. 데코레이터는 호출할 함수를 매개변수로 받고, 호출할 함수를 감싸는 함수 wrapper를 만듭니다. 2021. 5. 13.
Jenkins를 활용한 SW 통합 및 배포 관리 chapter 1~1.4 DevOps 개념 이해 "DevOps 운영에 필수인 개발 환경의 자동화를 위하여 오픈소스 도구를 활용한 ALM(Application Lefecycle Management)환경 구축 및 운영 약량을 확보" "DevOps : 소프트웨어 개발자와 정보 기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화" "ALM : Application Lifecycle Management : SW 제품의 생명 주기를 관리하는 것" "지속적 통합 도구. CI : Continuous Integration. 하루에 여러 번 통합 빌드를 수행 하는 것. 소프트웨어 통합 오류를 개발 초기부터 예방하는 것. 소프트웨어 통합을 위해 현존하는 가장 훌륭한 전략. 2021. 5. 8.
Clean Code chapter 1~4.3 Clean Method의 크기 "좋은 프로그래머는 사람이 이해하는 코드를 작성한다" "coding activity : understanding code 75% Cycle : Maintenance : 67%" "다루지 않는 것 : 성능 개선을 위한 알고리즘, 프로그래밍 패러다임, secure coding" "Clean code에 대한 서로 다른 시각 : naming ,comment, method/class의 크기, 중복, 테스트 코드" "좋은 이름은 내부를 들여다보지 않아도 동작과 목적을 이해할 수 있다." "좋은 이름은 가독성 향상에 가장 중요한 요소입니다." "줄임말을 사용하지 마세요" "언어 별 Naming Standart, Naming Convention이 존재함" "Boolean 질문하여 true, false 가 될 수 있도록.. 2021. 5. 8.
java lambda 개념 khj93.tistory.com/entry/JAVA-%EB%9E%8C%EB%8B%A4%EC%8B%9DRambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%82%AC%EC%9A%A9%EB%B2%95 [JAVA] 람다식(Lambda)의 개념 및 사용법 람다함수란? 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 khj93.tistory.com "익명 함수를 지칭하는 용어입니다. ... 단순하게 표현하는 방법입니다." "람다의 장점 1. 코드의 간결성 : 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하.. 2021. 5. 8.
정올 사이트 http://www.jungol.co.kr/xpert/ -> 실전고사 -> 스터디그룹 -> [2019 expert 4-1(1104)] ~ [2019 expert 4-10(1115)] 비번은 문제 제목 뒤에 있는 6자리 숫자를 거꾸로 하면 됩니다! (e.g [2019 expert 4-10(1115)] -> 5111014) 문제 보시면 실제 출제 된 문제들이 복원 되어 있습니다 기억에 남는 기출 문제들 : square, 개미마을5, Bit-ImageMap2, PUZZLE2, 카드게임 그리고 정답 코드를 보면 아시겠지만, 비트연산, heap sort, radix sort, hash 알고리즘이 많이 들어가네요 코드만 보면 이해가 안가는 부분도 있을텐데, 궁금한 것있으면 알려주세요 이해한 부분까지 알려드리겠습니다.. 2021. 5. 6.