반응형

Book/Programming 10

[CleanCode] 2장 의미 있는 이름

의도를 분명히 밝혀라 그릇된 정보를 피하라 의미 있게 구분하라 ❌ 중복 ❌ 변수 이름에 variable ❌ 표에 table 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 이름의 길이는 범위 크기에 비례해야 한다. MAX_CLASSES_PER_STUDENT 는 grep 으로 찾기 쉽지만, 숫자 7은 은근히 까다롭다. 인코딩을 피하라 ❌ 헝가리식 표기법: 컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙 ❌ 멤버 변수 접두어: m_... ❌ 인터페이스 클래스와 구현 클래스: IShapeFactory 보다는 차라리 ShapeFactoryImpl 자신의 기억력을 자랑하지 마라 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 전문가 프로그래머는 자신의 능..

Book/Programming 2022.02.16

[Test-Driven Development: By Example] 테스트 주도 개발-Money편

테스트 주도 개발 Test-Driven Development 국내도서 저자 : 켄트 벡 / 김창준,강규영역 출판 : 인사이트 2014.02.15 상세보기 테스트 주도 개발 Test-Driven Development켄트 벡 상세보기 TDD 오직 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다. 중복을 제거한다. 프로그래밍 순서 빨강 - 실패하는 작은 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다. 초록 - 빨리 테스트가 통과하게끔 만든다. 이를 위해 어떤 죄악(copy and paste, 테스트만 간식히 통과할 수 있게끔 함수가 무조건 특정 상수를 반환하도록 구현하기 등)을 저질러도 좋다. 리팩토링 - 일단 테스트를 통과하게만 하는 와중에 생겨난 모든 중복을 제거한다. 불확실한 상태로..

Book/Programming 2020.02.25

[Java프로그래밍면접 이렇게 준비한다] Chapter20. 안드로이드

- 안드로이드 앱의 주요 구성 요소와 함수는 무엇인가? A) 주요구성요소: Activity / Service / BroadcastReceiver / Content Provider(Content Resolver 이용) - Activity란 무엇인가? A) 사용자 인터페이스와 함께 화면에 표시됨 / 각 액티비티는 독립적으로 실행 / 내외부 앱의 화면이 어떻게 변경되는지 조정하기 위해 직접 액티비티를 실행할 수 있음 - Broadcast Receiver란 무엇인가? A) 시스템 전체나 내부에서 브로드캐스트된 인텐트를 받는다. -> 알림을 보여 줌 / 다른 구성 요소를 활성화 / 다른 짧은 작업을 수행 앱은 많은 시스템 브로드캐스트를 구독하는 데(실행 시작이나 네트워크 연결이 변경됐을 때) Broadcast R..

Book/Programming 2020.01.21

[Java프로그래밍면접 이렇게 준비한다] chapter8. 자바 기본

1. 원시타입 - 왜 Integer.MIN_VALUES에 대응하는 양수가 없는가? 보수의 표현 특징 - 자바에서 객체란 무엇인가? - final 키워드는 객체 참조에 어떤 영향을 미치는가? A) 변수정의에서 지정된 값처럼 일단 할당이 되고 나면 메모리 위치가 변경되지 X 단, 객체 참조는 변경할 수 없어도 객체 내부의 값들은 개별 값들이 final이 아니라면 변경할 수 O - 객체의 가시성 수정자(visibility modifier)는 어떻게 작동하는가? A) private / none / protected / public private - 오직 해당 클래스에서만 사용 > 같은 타입의 다른 모든 인스턴스가 private 멤버 변수에 접근 가능(p.163~) - 메서드와 변수에 사용되는 static 키워드..

Book/Programming 2020.01.21

[Algorithmic Problem Solving Strategies] 8. 동적계획법

알고리즘 문제 해결 전략 세트 국내도서 저자 : 구종만 출판 : 인사이트 2012.11.23 상세보기 알고리즘 문제 해결 전략 세트구종만 상세보기 8.1 도입 ========== - 메모제이션: 함수의 결과를 저장하는 장소를 마련해 두고, 한 번 계산한 값을 저장해 뒀다 재활용하는 최적화 기법 = 참조적투명함수의 경우에만 적용 - 참조적 투명성: 함수의 반환값이 그 입력값만으로 결정되는지 여부 = 입력이 고정되어 있을 때, 그 결과가 항상 같을 경우 - 동적계획법: 두 번 이상 반복 계산되는 부분 문제들의 답을 미리 저장함으로써 속도의 향상을 꾀하는 알고리즘 설계기법 - 메모이제이션 패턴: 항상 기저사례를 제일 먼저 처리 ​​​​​​// 전부 -1로 초기화 int cache[2500][2500]; // ..

Book/Programming 2019.11.26

[Algorithmic Problem Solving Strategies] 4. 알고리즘의 시간복잡도 분석

알고리즘 문제 해결 전략 세트 국내도서 저자 : 구종만 출판 : 인사이트 2012.11.23 상세보기 알고리즘 문제 해결 전략 세트구종만 상세보기 4.1 도입 ========= 1. 알고리즘의 속도 측정 방법 알고리즘의 수행 시간 = 반복문이 수행되는 횟수 4.2 선형 시간 알고리즘 ========= 1. 다이어트 현황 파악: 이동 평균 계산하기 4.3 선형 이하 시간(sublinear time) 알고리즘 ========= 1. logN: 입력의 크기가 커지는 것 보다 수행시간이 느리게 증가하는 알고리즘 —————- 2. 이진탐색(binary search) —————- 4.4 지수 시간 알고리즘 ========= 1. 다항 시간 알고리즘 —————- 변수 N, N^2, ..., N^100 2. 지수 시간..

Book/Programming 2019.11.18

[Algorithmic Problem Solving Strategies] 3. 코딩과 디버깅에 관하여

알고리즘 문제 해결 전략 세트 국내도서 저자 : 구종만 출판 : 인사이트 2012.11.23 상세보기 알고리즘 문제 해결 전략 세트구종만 상세보기 3.1 코딩의 중요성을 간과하지 말라 ============ 3.2 좋은 코드를 짜기 위한 원칙 ============ 간결한 코드를 작성하기 ———————— 적극적으로 코드 재사용하기 코드를 모듈화 ———————— 표준 라이브러리 공부하기* 언어의 문자열 동적배열 스택, 큐, 리스트, 사전...(자료구조) 정렬 ———————— 항상 같은 형태로 프로그램을 작성하기* ———————— 일관적이고 명료한 명명법 사용하기* 모호하지 않은 변수명&함수명 사용하는 언어의 표준 라이브러리에서 사용하는 명명규약(naming convention) ———————— 모든 자료를..

Book/Programming 2019.11.15

[Algorithmic Problem Solving Strategies] 2. 문제해결과정

알고리즘 문제 해결 전략 세트 국내도서 저자 : 구종만 출판 : 인사이트 2012.11.23 상세보기 알고리즘 문제 해결 전략 세트구종만 상세보기 2.2 문제해결과정 =============== 1단계: 문제를 읽고 이해하기 완전히 이해 ———————- 2단계: 재정의와 추상화* 문제를 자신의 언어로 풀어 쓴다.(직관적 이해) 추상화 ———————- 3단계: 계획세우기* 문제를 어떤 방식으로 해결할 것인가 사용할 알고리즘&자료구조 선택 ———————- 4단계: 계획 검증하기* 설계한 알고리즘이 모든 경우에 요구 조건을 정확하게 수행하는 지 증명 수행에 걸리는 시간과 사용하는 메모리가 문제의 제한 내에 들어가는 지 확인 ———————- 5단계: 계획 수행하기* 프로그램 작성 단계 ———————- 6단계: ..

Book/Programming 2019.11.13
반응형