목록우테코 프리코스/3주차 (4)
안녕하세요
함수(메서드) 라인은 15라인을 넘지 않도록 한다✔ => 이때 공백 라인도 한 라인에 해당한다. 예외 상황을 고려해 프로그래밍하는 습관을 들인다✔ 비즈니스 로직과 UI로직을 분리한다✔ => 한 클래스가 담당하지 않도록 한다. 단일 책임의 원칙에도 위배된다. 객체의 상태 접근을 제한한다❌ => 필드는 private class 필드로 구현한다. 외부에서의 직접 접근을 최소화한다 객체는 객체스럽게 사용한다(????????????) => Lotto 클래스는 numbers를 상태 값으로 가진다. 그런데 이 객체는 로직에 대한 구현은 하나도 없고, numbers에 대한 getter 메서드만을 가진다. (로직에 대한 구현이 없으니 Lotto 클래스는 gtter 메서드만을 갖도록 하고 기능은 다른 클래스(LottoGa..
프라이베이트, 필드 constructor도 뭔지 잘 모르겠다 생각하던 차에 field의 개념이 들어와서 새로 학습하고, #private, static public의 개념을 새로 알게 되었다 private를 외부에서는 이용할 수 없기 때문에 인풋을 Lotto.js가 받아 결과를 만들기 위한 로직은 오로지 Lotto 클래스에서 해결해야 한다는 것을 설계할 때 어렴풋이 짐작을 했었다 하지만 실제로 입력을 받아 출력을 하기 위한 코드를 짜려고 하니 너무 어려웠다. 테스트케이스 testcase를 만들면서 다른 사람들이 만들어 놓은 테스트 케이스를 많이 확인했는데 작동을 시키고 테스트에 통과되어도 제대로 하고 있는 것인지 잘 모르겠다. 이 과정을 진행하는 의미를 알기 위해서는 따로 찾아서 공부를 해야할 것 같지만 ..
class Customer { constructor() { // 구매 수량 } getPurchaseAmount(money) { if (this.checkMoneyValidation(money)) { return money / 1000; } } checkMoneyValidation(money) { if (money % 1000 === 0 && money !== 0) { return true; } throw new Error("[ERROR] 1,000원으로 나누어 떨어지는 수를 입력해야합니다."); } } module.exports = Customer; ㄴ1000원으로 나누어 떨어지는 수 반환 class Generator { constructor() { // 랜덤한 로또를 담은 배열 } getLottos(a..
그래서 도메인 로직이 뭔가요???🙄🙄🙄 1. 도메인 로직 (https://velog.io/@eddy_song/domain-logic) 도메인 소프트웨어가 존재하는 이유, 목적. 현실 문제에 대한 의사결정을 하고 있는가? ex) 은행 앱이라면 금융 및 은행 업무가 도메인!✅ 도메인 공학/기술적 문제 성능을 높이기 위해, 간결하게 처리하기 위해 어떻게 할 것인가와 같은 문제 어플리케이션 서비스 로직 데이터베이스 연결, 백엔드 서버와 통신, 사용자와 인터렉션, 입출력 처리 도메인로직과 아닌 것이 구분이 잘 안된다...😅😅😅 어떻게 해야할까? 해당 코드가 하나의 역할만을 수행하지 않고 여러가지를 수행하고 있다는 뜻. => 코드를 더 잘게 분리해야한다.💯 이제 작성한 기능 목록 중에서 도메인로직을 찾아보자... ..