목록읽을거리 (26)
구어체로 설명하는 다이어리

변수 추출하기 return order.quantity * order.itemPrice - Math.max(0, order.quantity - 500) * order.itemPrice * 0.05 + Math.min(order.quantity * order.itemPrice * 0.1, 100); ▼ const basePrice = order.quantity * order.itemPrice;const quantityDiscount = Math.math(0, order.quantity - 500) * order.itemPrice * 0.05;const shipping = Math.min(basePrice * 0.1, 100);return basePrice = quantityDiscount + shi..

함수 인라인하기 function getRating(driver) { return moreThanFiveLateDeliveries(driver) ? 2 : 1;}function moreThanFiveLateDeliveries(driver) { return driver.numberOfLateDeliveries > 5;} ▼ function getRating(driver) { return (driver.numberOfLateDeliveries > 5) ? 2 : 1;} 배경이 책은 목적이 분명히 드러나는 이름의 짤막한 함수를 이용하기를 권한다. 그래야 코드가 명료해지고 이해하기 쉬워지기 때문이다. 하지만 때로는 함수 본문이 이름만큼 명확한 경우도 있다. 또는 함수 본문 코드를 이름만큼 깔끔하게 리팩..

함수 추출하기 function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); // 세부사항 출력 console.log(`고객명: ${invoice.customer}`); console.log(`채무액: ${outstanding}`);} ▼ function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); printDetails(outstanding); function printDetails(outstanding) { console.log(`고객명: ${invoice.customer}`); ..

카탈로그의 첫머리는 가장 기본적이고 많이 사용해서 제일 먼저 배워야 하는 리팩터링들로 시작한다. 내가 가장 많이 사용하는 리팩터링은 함수 추출하기와 변수 추출하기다. 리팩터링은 본래 코드를 변경하는 작업인 만큼, 이 두 리팩터링을 반대로 진행하는 함수 인라인하기와 변수 인라인하기도 자주 사용한다. 추출은 결국 이름 짓기이며, 코드 이해도가 높아지다 보면 이름을 바꿔야 할 때가 많다. 함수 선언 바꾸기는 함수의 이름을 변경할 때 많이 쓰인다. 함수의 인수를 추가하거나 제거할 때도 이 리팩터링을 적용한다. 바꿀 대상이 변수라면 변수 이름 바꾸기를 사용하는데, 이는 변수 캡슐화하기와 관련이 깊다. 자주 함께 뭉쳐 다니는 인수들은 매개변수 객체 만들기를 적용해 객체 하나로 묶으면 편리할 때가 많다. 함수 구성과..
https://www.tistory.com/event/write-challenge-2024 작심삼주 오블완 챌린지오늘 블로그 완료! 21일 동안 매일 블로그에 글 쓰고 글력을 키워보세요.www.tistory.com 저도 매일매일 글쓰기를 목표로 하고 있어서기회 되면 참가해볼까 생각중입니다.티스토리 챌린지 많이해줘!

이번에도 늘 그랬듯이 타이핑하면서 책을 읽으려 한다. 이 책을 추천해 주신 분께서 책을 읽고 나면 업무를 함에서도, 평소에 말하는 것에서도 많은 변화를 느끼게 될 것이라 하여 조금의 기대를 하고 독서에 임하려 한다. 이번에도 아마 완독하게 되면 자동으로 비공개 처리할 예정이다. 함께 읽으실 분은 차근히 따라와 주길 바란다.

URL 설계 URL에서 명사는 좋고, 동사는 나쁘다REST의 데이터 지향 모델의 결과로, 모든 URL은 어떤 '대상'을 식별합니다. 즉, API 클라이언트 프로그래머가 읽고 쓸 수 있도록 설계된 URL과 쿼리 URL은 사물(대상)을 나타내는 자연어의 품사인 '명사'로 구성되어야 한다는 의미입니다. 잘 알려진 URL위의 예에서, 알려진 개들의 컬렉션에 대한 URL은 https://dogtracker.com/dogs입니다. API에서는 최소한 하나 이상의 잘 알려진 URL을 게시해야 하며, 그렇지 않으면 클라이언트가 시작할 수 없습니다. 우리는 아마도 https://dogtracker.com/owners 같은 URL을 통해 알려진 소유자에 대한 또 다른 URL을 제공할 수도 있습니다.이론적으로는 http..

데이터 지향 설계 패러다임 REST API는 엔티티를 조작하는 함수 집합보다는, 노출하려는 문제 도메인의 기본 엔티티에 중점을 둡니다. 머리말에서 소개한 예를 따르면, 우리 문제 도메인은 개와 그 주인을 추적하는 것이라고 가정해봅시다. 여기서 우리가 노출할 주요 엔티티는 다음을 포함할 수 있습니다:• 알려진 개들의 컬렉션. 이 컬렉션의 URL은 https://dogtracker.com/dogs 일 수 있습니다.• 개별 개들. 각 개는 고유한 URL을 갖습니다. 각 개의 URL 형식은 곧 논의할 것입니다. 우리는 주인에 대해서도 이와 유사한 무언가가 필요합니다.데이터 지향 접근 방식이 왜 유용할까요?개별 개의 URL과 HTTP 프로토콜의 작동 방식을 알고 있다면, 이미 여러 가지 작업을 어떻게 수행할지 알..

웹 API와 REST API 설계자의 역할API의 역할은 애플리케이션 개발자가 최대한 성공할 수 있도록 돕는 것입니다. API를 설계할 때는 애플리케이션 개발자의 관점에서 디자인 선택을 고민해야 합니다.왜일까요? 아래의 가치 사슬을 살펴보세요. 애플리케이션 개발자는 전체 API 전략의 핵심입니다. API를 설계할 때 가장 중요한 설계 원칙은 애플리케이션 개발자의 생산성과 성공을 극대화하는 것입니다. 올바르게 설계하는 것은 중요합니다. 왜냐하면 설계는 어떻게 사용될 것인지를 전달하기 때문입니다. 그러면 질문은 이렇게 바뀝니다—애플리케이션 개발자에게 최적의 이익을 주는 설계는 무엇일까요? 웹 API란 무엇인가?웹 API는 사람이 사용하는 웹 브라우저가 아닌 임의의 컴퓨터 프로그램에 의해 접근되는 웹사이트..

소개 웹 API는 정의상 HTTP를 사용합니다. 웹 API 초기에는, 사람들이 HTTP 위에서 CORBA나 DCOM 같은 이전 세대 분산 기술의 기능을 구현하려고 많은 시간과 노력을 들였습니다. 그 결과 SOAP와 WSDL 같은 기술이 등장했습니다. 경험상 이러한 기술들은 대부분의 웹 API에는 너무 복잡하고 무겁고 취약하다는 것이 드러났습니다. SOAP와 WSDL을 대체한 아이디어는 HTTP 위에 복잡한 기술을 추가하지 않고, HTTP를 더 직접적으로 사용할 수 있다는 것이었습니다. 대부분의 현대 웹 API는 SOAP나 WSDL API보다 훨씬 단순하지만, HTTP 위에 가볍게 구현된 원격 프로시저 호출의 기본 아이디어를 어느정도 유지하고 있습니다. 이러한 API들은 RESTful API라고 불리게 ..