일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git commit 협업
- git squash
- 시스템설계면접
- git commit merge
- 가상면접2장
- s3이미지다운로드됨
- 전략패턴
- gitsquash
- 디자인패턴
- file not found Error
- awss3
- 시스템설계면접팁
- react
- cypressBDD
- react-ga
- 리팩터링2판테스트
- 가상면접으로대규모시스템
- Git commit 합치기
- 리액트구글애널리틱스
- 헤드퍼스트전략패턴
- FirebaseAnalytics
- 시스템설계
- 테스트코드책
- 리팩토링2판4장
- formik react-query submitting not working
- cypress React
- 시스템설계면접예시
- formik submitting not working
- 가상면접3장
- 시스템설계방법
- Today
- Total
목록전체 글 (274)
mingg IT
9장 계층형 설계 2 계층형 설계 패턴 패턴1: 직접 구현 패턴2: 추상화 벽 호출 그래프에 어떤 계층은 중요한 세부 구현을 감추고 인터페이스를 제공함 인터페이스를 사용하여 코드를 만들면 높은 차원으로 생각할 수 있음 패턴3: 작은 인터페이스 시스템이 커질수록 비즈니스 개념을 나타내는 중요한 인터페이스는 작고 강력하게 구성하는 것이 좋음 패턴4: 편리한 계층 계층형 설계 패턴과 실천 방법은 개발자의 요구를 만족시키면서 비즈니스 문제를 잘 풀수 있어야 한다. 소프트웨어를 더 빠르고 고품질로 제공하는데 도움이 되는 계층에 시간을 투자해야함 그냥 좋아서 계층을 계속 추가하면 안됨. 코드가 속한 추상화 계층은 작업할 때 편리해야함 패턴2: 추상화 벽 책임을 명확하게 나눔 세부 구현을 감춘 함수로 이루어진 계층 ..
8장 계층형 설계 1 좋은 설계를 위한 감각을 키울 수 있도록 도와주는 장이다. 목적에 따라 분리한 계층형 설계에 대해서 설명하고, 어떤 식으로 계층을 분리해야하는지 알려준다. 정말 이러한 패턴으로 설계를 했을 때 좋은 설계가 맞는지 의문도 들었다. 괜히 여러 계층이 생기면서 오버엔지니어링이 되는건 아닌가? 싶었다. 현업시 간혹 어떤 파일에 해당 함수를 넣을지 고민한적이 많았는데 동일한 계층에 넣으면 되겠다 싶었다. 계층형 설계 소프트웨어를 계층으로 구성하는 기술 비즈니스 규칙, 장바구니를 위한 동작들, 카피-온-라이트, 배열 관련 기능 목적에 따라 계층으로 나눔 계층형 설계 패턴 직접 구현 계층형 설계 구조를 만드는데 도움이 됨. 함수 시그니처가 나타내고 있는 문제를 함수 본문에서 적절한 구체화 수준에..
7장 신뢰할 수 없는 코드를 쓰면서 불변성 지키기 레거시 코드나 신뢰할 수 없는 코드로부터 내 코드를 보호하기 위해 방어적 복사를 만듬 얕은 복사와 깊은 복사를 비교함 카피-온-라이트와 방어적 복사를 언제 사용하면 좋은지 알 수 있음 이번 장 같은 경우에는 언제 얕은 복사를 사용하고, 언제 깊은 복사를 사용하면 좋을지 개념적으로 설명되어있다. 사실 현업을 진행하면서 습관적으로 데이터의 불변성을 위해 복사를 사용하는데 언제 어떤 복사를 이용해야할지 원칙적으로 정리해본 적은 없었다. 이번 장을 통해 그런 점들을 한번쯤 상기시키고 개념화 할 수 있어서 좋았다. 방어적 복사 블랙 프라이데이 행사를 위해 장바구니 항목에 세일을 적용하고 싶다. 카피-온-라이트 원칙을 지키면서 안전하게 함수를 사용하는 원칙을 방어적..
6장 변경 가능한 데이터 구조를 가진언어에서 불변성 유지하기 장바구니를 예시로 들었을때 동작에서 읽기, 쓰기를 분류할 수 있음 읽기 데이터를 바꾸지 않고 정보를 꺼내는 것 쓰기 데이터를 바꾸는 것 장바구니 동작 제품 개수 가져오기 => 읽기 제품 이름으로 제품 가져오기 => 읽기 제품 추가하기 => 쓰기 제품 이름으로 제품 빼기 => 쓰기 제품 이름으로 제품 구매 수량 바꾸기 => 쓰기 함수형 프로그래밍에선 쓰기 동작은 불변성 원칙에 따라 구현해서 최대한 읽기로 바꾸어야함. 카피-온-라이트 원칙 3단계 복사본 만들기 복사본 변경하기 복사본 리턴하기 연습문제 1 적용 전 var mailing_list = []; function add_contact(email) { mailing_list.push(email..
보호되어 있는 글입니다.
1장 부터 읽었을때 가장 인상깊고 재밌었던 장이다. 함수 내 코드를 분리할때 어떤 기준으로 나눌지 애매한 경우가 많았는데 비즈니스 규칙, 계산, 액션 등으로 나누는 기준을 알려줌 수정 전 (4장 코드) var shopping_cart = []; var shopoing_cart_total = 0; function add_item_to_cart(name, price) { shopping_cart = add_item(shopping_cart, name, price); calc_cart_total(); } function calc_cart_total() { shopping_cart_total = calc_total(shopping_cart); set_cart_total_dom(); update_shipping_..
4장 액션에서 계산 빼내기 함수형 프로그램 적용 전 장바구니 예시 var shopping_cart = []; var shopping_cart_total = 0; // 장바구니 카트에 추가 function add_item_to_cart(name, price) { shopping_cart.push({ name: name, price: price, }); calc_cart_total(); } // 장바구니 총액 계산 function calc_cart_total() { shopping_cart_total = 0; for (var i = 0; i < shopping_cart.length; i++) { var item = shopping_cart[i]; shopping_cart_total += item.price;..
상황 검색 조건등으로 인해 동적 쿼리를 생성할 일이 생겨서 queryDSL을 적용해 보려고 한다. build.gradle.kt import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.7.6" id("io.spring.dependency-management") version "1.1.3" kotlin("jvm") version "1.8.22" kotlin("plugin.spring") version "1.8.22" kotlin("plugin.jpa") version "1.8.22" // 추가 kotlin("kapt") version "1.9.10" idea } java {..