목록우테코 프리코스 (21)
안녕하세요
멤버변수 클래스 내에서 name과 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수 constructor 안에 생성한 this.name = name에서 this.name이 멤버 변수 try ... catch throw로 에러를 발생시키면 함수가 종료되고 끝이 난다. try catch를 이용하면 에러 문구를 throw로 출력시킬 수는 없지만 throw를 읽으면 catch 문구를 실행한다. 변수명 짓기 정리 메서드 순서 컨벤션은 없고 논리적으로 잘 응집되게
함수(메서드) 라인은 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..