Skip to content

wonbi92/Calculator-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 

Repository files navigation

🧮 계산기

📖 목차

  1. 팀 소개
  2. Ground Rule
  3. 일일 스크럼
  4. 실행 화면
  5. Diagram
  6. 폴더 구조
  7. 타임라인
  8. 기술적 도전
  9. 트러블 슈팅
  10. 참고 링크

🌱 팀 소개

Wonbi 애쉬
  • Wonbi애쉬 팀의 계산기입니다.

🤙 Ground Rule

📝 일일 스크럼

🛠 실행 화면

기본 연산 연산 후 =버튼 비활성화 0일때 연산자 변경
AC버튼 CE버튼 부호 바꾸기
0일때 0, 00입력 제어 소수점 입력 0으로 나눌 시 NaN

👀 Diagram

🧬 Class Diagram

🗂 폴더 구조

Model : 앱 구동 로직에 필요한 모델
View : 화면을 구성하는 뷰
Controller : 화면의 이벤트와 전환을 컨트롤하는 컨트롤러

Calculator
├── Info
├── Model
│   ├── CalculatorItemQueue
│   ├── ExpressionText
│   ├── LinkedList
│   ├── CalculateItem
│   ├── Operator
│   ├── Formula
│   ├── ExpressionParser
│   └── Extension
│       ├── Double
│       └── String
├── View
│   ├── Main
│   ├── Assets
│   └── LaunchScreen
└── Controller
    ├── AppDelegate
    ├── SceneDelegate
    ├── ViewController
    ├── OperandManager
    └── ComponentMaker

⏰ 타임라인

👟 Step 1

  • Queue 자료구조를 구현할 원시구조 결정
  • Model 파트 코드 병합
  • ViewController 코드 병합
Details

221004

  • Model
    • Operator 타입 병합
    • CalculatorItemQueue 의 원시구조 결정
      • Linked List ☑️
      • Double Stack Queue
    • ExpressionPaser 타입 병합
    • Formula 타입 병합
    • Extension String 파트 병합
  • ViewController 메서드 병합
    • tapOperatorButton
    • tapSignButton
    • tapACButton

👟 Step 2

  • 병합한 프로젝트의 리팩토링 진행
Details

221005

  • NumberFormatter 적용 메서드를 extension String으로 이동
  • 유닛 테스트 파일 수정
  • CalculatorItemQueue타입에 statusQueue 연산 프로퍼티 구현

221006

  • ViewController 메서드 리팩토링
    • tapOperatorButton
    • tapEqulasButton
    • tapSignButton
    • tapACButton, tapCEButton
  • Name Space 추가
  • 리팩토링 이후 발생한 버그 및 오류 수정

221007

  • IBOutlet변수와 IBAction 메서드 접근제어 적용

🏃🏻 기술적 도전

단방향 연결 리스트(Linked List) 사용

제네릭의 사용

TDD

🚀 트러블 슈팅

LinkedList의 Unit Test

NumberFormatter의 적용

병합 시 테스트 파일 병합에 대한 고민

제시된 UML에 포함되지 않았던 View Controller 병합의 어려움

🔗 참고 링크

Swift Language Guide - Protocols
Swift Language Guide - Extentions
Swift Language Guide - Generics
Swift Language Guide - Closures
Receive messages from a UI object
NumberFormatter
오토레이아웃 정복하기 - 야곰닷넷


🔝 맨 위로

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages