일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- 2020년 제4회 정보처리기사 필기 문제 분석
- 2020년 정보처리기사 4회
- git
- 스터디
- 주간회고
- Til
- 코드숨
- post
- sqldeveloper
- algorithms
- 뇌정리
- 성적프로그램
- 정보처리기사
- 2020년 일정
- 서평
- java
- If
- jsp
- LeetCode
- rownum
- 미니프로젝트
- 책리뷰
- Jackson
- 필기
- Python
- Real MySQL
- 함수형 코딩
- hackerrank
- 회고
- 알고리즘
- Today
- Total
목록책읽기 (23)
조컴퓨터
챕터 6에서 중점적으로 볼 내용은 ? - 데이터가 바뀌지 않도록 하기 위해 카피-온-라이트를 적용하기 - 배열과 객체를 데이터에 쓸 수 있는 카피-온-라이트 동작을 만들기 - 깊이 중첩된 데이터도 카피-온-라이트가 잘 동작하게 만들기 모든 동작을 불변형으로 만들 수 있나요 ? 앞 챕터에서 장바구니 동작 일부에 카피-온-라이트 원칙을 적용하여 구현해 봤다. 구현 방식은 배열을 복사하고 값을 바꾼 다음 리턴하는 것이다. 다음은 추가적인 카피-온-라이트 적용 가능성이 있는 목록이다. (진행한 목록 포함) 장바구니에 대한 동작 제품에 대한 동작 1. 제품 개수 가져오기 2. 제품 이름으로 제품 가져오기 3. 제품 추가하기 4. 제품 이름으로 제품 빼기 5. 제품 이름으로 제품 구매 수량 바꾸기 (→ 중첩된 데이..
챕터 5에서 중점적으로 볼 내용은 ? - 암묵적 입력과 출력을 제거해서 재사용하기 좋은 코드를 만드는 방법 알아보기 - 복잡하게 엉킨 코드를 풀어 더 좋은 구조로 만드는 법 배우기 비즈니스 요구 사항과 설계를 맞추기 요구 사항에 맞춰 더 나은 추상화 단계 선택하기 액션에서 계산으로 리팩터링하는 과정은 단순하고 기계적이었다. 기계적인 리팩터링이 항상 최선의 구조를 만들어 주는 것은 아니다. gets_free_shipping() 함수는 비즈니스 요구 사항으로 봤을 때 맞지 않는 부분이 있다. 요구 사항은 장바구니에 담긴 제품을 주문할 때 무료 배송인지 확인하는 것이다. 하지만 함수를 보면 장바구니로 무료 배송을 확인하지 않고 제품의 합계와 가격으로 확인하고 있다. 이것은 비즈니스 요구 사항과 맞지 않는 인자..
챕터 4에서 중점적으로 볼 내용은 ? - 어떻게 함수로 정보가 들어가고 나오는지 - 테스트하기 쉽고 재사용성이 좋은 코드를 만들기 위한 함수형 기술에 대해 알아보기 - 액션에서 계산을 빼내는 방법 배우기 MegaMart.com 에 오신 것을 환영합니다 var shopping_cart = []; // 장바구니 제품과 금액 합계를 담고 있는 전역변수 var shopping_cart_total = 0; function add_item_to_cart(name, price) { shopping_cart.push({ // 장바구니에 제품을 담기 위해 cart 배열에 레코드를 추가 name : name, price : price }); calc_cart_total(); // 금액 합계 업데이트 } function c..
파트 1. 액션과 계산, 데이터 챕터 3. 액션과 계산, 데이터의 차이를 알기 챕터 3에서 중점적으로 볼 내용은 ? - 액션과 계산, 데이터가 어떻게 다른지 - 문제에 대해 생가갛거나 코드를 작성할 때 또는 코드를 읽을 때 액션과 계산, 데이터를 구분해서 적용 - 액션이 코드 전체로 퍼질 수 있다는 것을 이해 - 이미 있는 코드에서 어떤 부분이 액션인지 액션과 계산, 데이터 1. 액션 - 실행 시점과 횟수에 의존 - 부수 효과(side-effects), 부수 효과가 있는 함수(side-effecting function), 순수하지 않은 함수(impure function) 2. 계산 - 입력으로 출력을 계산 - 순수 함수(pure function), 수학 함수(mathematical function) 3...
챕터 2에서 중점적으로 볼 내용은 ? - 현실적인 문제에 함수형 사고를 적용 - 소프트웨어의 구조를 잡는데 왜 함수형 프로그래밍이 좋은지 - 액션을 타임라인으로 구조화 - 타임라인을 활용하면 시간에 대한 문제를 잘 풀 수 있음 토니 피자에 오신 것을 환영합니다. 피자 가게를 운영하는 토니는 로봇에 함수형 사고를 사용했다. 다음은 두 가지 함수형 사고의 기술을 다시 한 번 살펴본 내용이다. 토니가 적용한 것을 통해 알아보자. 1. 액션과 계산, 데이터 - 토니는 요리 재료와 기타 필요 자원을 사용하는 코드를 액션으로 구분하고, 나머지 코드는 계산과 데이터로 구분했다. - 코드에 적용한 계층형 설계(stratified design) 원칙이 무엇인지 알아보기 2. 일급 추상 - 가게 주방에 많은 로봇들이 피자..
챕터 1에서 중점적으로 볼 내용은 ? - 함수형 사고가 무엇인지 - 함수형 프로그래머가 코드를 바라볼 수 있는지 함수형 프로그래밍은 무엇인가요? 함수형 프로그래밍(Functional Programming, FP) 이란 ? - 수학 함수를 사용하고 부수 효과(side effect) 를 피하는 것이 특징인 프로그래밍 패러다임 - 부수 효과 없이 순수 함수(pure function) 만 사용하는 프로그래밍 스타일 * 부수 효과(side effect) 란 ? 함수가 리턴값 이외에 하는 모든 일들을 뜻한다. 예) 메일 보내기, 전역 변수 수정하기 등 ** 순수 함수(pure function) 란 ? 인자에만 의존하고 부수 효과가 없는 함수이다. 이때 인자에만 의존한다는 말은 a 를 넣었을 때 항상 b 라는 값이 ..
PART 3 - 스트림과 람다를 이용한 효과적 프로그래밍 CHAPTER 8 - 컬렉션 API 개선 8.1 컬렉션 팩토리 자바에서는 적은 요소를 포함하는 리스트를 만들 수 있는데, 이를 팩토리 메서드화 한 것이 `Arrays.asList()` 이다. 고정 기의 리스트를 만들었으므로 요소를 갱신할 수는 있지만 새 요소를 추가하거나 요소를 삭제할 수는 없다. 예를 들어, 요소를 추가하는 작업시 `UnsupportedOperationException` 이 발생한다. 리스트의 경우에는 팩토리 메서드가 있지만, 집합의 경우에는 팩토리 메서드가 없으므로 다른 방법이 필요하다. 리스트를 인수로 받는 HashSet 생성자를 사용하거나 다음과 같은 스트림 API 를 사용하는 방법이 있다. Set alphabet = new..