반응형
반응형
우아한 테크코스 2주차 입니다. 이번 미션에서는 조합과 상속에 대해서 공부했습니다! ❗중복 코드 발생 class Lotto { constructor(numbers) { if (numbers.some((number) => number > MAX_NUMBER || number < MIN_NUMBER)) { throw new Error("로또 번호는 1~45 사이의 정수여야 합니다."); } if (numbers.length !== 6) { throw new Error("로또 번호는 6개여야 합니다."); } if (numbers.length !== new Set(numbers).size) { throw new Error("로또 번호는 중복되지 않아야 합니다."); } this.#numbers = number..
우아한 테크코스 프리코스 4주차를 시작하면서, “서비스의 핵심을 파악하고, 이를 우선 구현해 봐라”는 피드백을 받았습니다. 사실 지금까지 TDD에 대해서 배운바, 도메인 로직의 테스트 코드를 구성하고 나서, 실제 코드를 만드는 것에 익숙해져 있었습니다. 그런데 갑자기 “핵심 로직을 우선 구현하라”…? 사실 의아한 부분이 많았습니다. 지금까지 주구장창 도메인 로직의 구성부터 생각하며 빌드를 해왔는데… 음.. TDD와는 다른 어떠한 방법론에 대한 이야기라고 생각 들었습니다. 이게 단순히 ‘설계를 꼼꼼히 하라, 그리고 TDD 구현을 시작하라’ 라는 의미라면, 지금까지 잘 해왔다고 생각했지만, 분명 TDD의 단점은 원하는 서비스를 빠르게 만들진 못한다는 생산성의 문제가 있었기 때문에, 이를 개선해 나가야 할 방..
저번주 우아한 테크코스 프리코스 2주 차 피드백에서 이러한 피드백을 받았습니다 한 함수가 한 가지 기능만 담당하게 한다 그리고, 현재 읽고 있는 ‘클린 아키텍처’ 책에서 다음과 같은 내용이 있었습니다. ‘SRP(Single-Responsibility Principle)는 ‘한 함수가 한 가지 기능만을 담당하는 것과는 다른 법칙이다. 이는 함수형 프로그래밍의 원칙’ 그리고 이 책을 통해서 ‘SRP ≠ 한 함수가 한 가지 기능만 담당하게 한다’ 라는 것을 이해할 수 있었습니다. 그 부분을 공유하려고 이 글을 적어봅니다! ❓SRP의 진정한 의미 SRP의 정의는 다음과 같습니다. ‘단일 모듈은 변경의 이유가 하나, 오직 하나 뿐이어야 한다.’ 이 문장에서 부터 ‘함수’와는 거리가 있다는 사실이 느껴지시나요? ‘..
이번 시간에는 ATDD에 대해서 공부해 보려 합니다. ATDD는 사용자 요구를 더 잘 이해하기 위한 방안으로 탄생한 소프트웨어 개발론 인데요, 현재 TDD에 대해서 공부하고 있는 저로써 TDD의 심도있는 이해에 도움이 될 것 같아 공부해 보게 되었습니다. ❓ATDD란? ATDD는 TDD에서 한 발 더 나아간 개념이라고 할 수 있는데요, ATDD는 인수 테스트-주도-개발 이란 뜻인데요, 여기서 인수는 ‘인수인계’에서 뜻하는 그 인수라는 점에서 ATDD가 ‘소통’에 집중된 소프트웨어 개발 방법론이라는 것을 알 수 있습니다. 개인적으로는 이 그림이 ATDD의 핵심을 말해준다고 생각합니다. ❓ATDD의 장점? ATDD는 각 팀 별로 요구사항을 이해하고 있더라도, 그 이해가 다를 수 있다는 관점에서 사용자의 요구..
이번 우아한 테크코스 프리코스의 3주차 미션을 설계하기 위해 많은 준비를 했는데요, 이번 읽고있는 책인 ‘클린 아키텍처’에서 ‘유스 케이스’라는 개념을 알게 되었습니다. 그리고 ‘유스케이스 다이어그램’ 이라는 것을 같이 알게 되었고, 이를 이용한 시스템 설계를 소개해드리고자 합니다. ❓유스 케이스란 (Use Case) 유스 케이스(Use Case)의 정의는 다음과 같습니다. ‘소프트웨어 개발에서 사용자가 시스템과 상호작용하는 방식을 기술하는 기능적 요구사항을 표현하는 기법’ 이를 이용하여 비지니스의 요구사항을 분석하고, 시각화 할 수 있다고 합니다. 유스 케이스는 다음을 포함하고 있습니다. 액터(Actors): 시스템과 상호작용하는 주체. 주로 사용자, 시스템, 외부 기관 등을 나타냅니다. 액션(Acti..
이번에는 MVVM에 대해서 공부하며 정리하는 시간을 가지려 합니다. ❓MVVM? MVVM은 MS사에서 프레젠테이션 모델(PM) 패턴을 수용하여 만들어 낸 모델이라고 합니다. MVVM은 모델, 뷰, 뷰 모델 이 세기자의 구성 요소를 가지고 있는 패턴을 말합니다. MVVM 패턴을 통해 ‘애플리케이션의 논리를 UI와 명확하게 구분’하는데 도움이 된다고 합니다! 이에 따라서 UI 수정 비용을 절약할 수 있고, 단위 테스트에 용이해지며, UI 디자이너와 개발자가 함께 작업할 수 있는 환경을 만드는데 도움을 줄 수 있다고 하네요. 그렇다면 어떤 방식으로 애플리케이션의 논리를 UI와 구분짓는 것인지 알아 보도록 하겠습니다. 우선 뷰, 모델, 뷰모델이 무엇일까요? ❓뷰 뷰는 사용자가 화면에 표시되는 구조, 레이아웃 및..