본문 바로가기
프로젝트/개발일지

첫번째 플러터앱 : 계산기 만들기

by 반포한강공원 2025. 5. 20.

 

Flutter로 가장 먼저 만들어볼만한 앱이 뭐가 있을까?

바로 "계산기"다.

 

서버가 필요없는 앱이고, 복잡한 시나리오 없이 사칙연산만 잘되면 된다.

Sequence Diagram, ERD, 이런 거 다 필요 없는 거다.

MVC, MVVM 같은 거 고민 안해도 된다.

 

반면 늘 손에 익는 계산기가 없었다.

단순 계산은 그냥 암산하고, 복잡한 계산은 엑셀 쓰면 된다.

공학용 계산기는 고등학교 졸업 후 한 번도 열어본 적이 없다.

 

부가세 계산, 연비 계산도 많은데, 솔직히 쓸 일이 거의 없다.

가게 있는 분이라면 큼지막한 아나로그 계산기가 좋고,

연비 계산도 그냥 차에 뜨는 걸 보는 게 좋다.

 

생각보다 손에 잘 잡히지 않는게 계산기다.

그래서 직접 만들어 보기로 했다.

 

계산기 앱

 

만들기 시작한지는 벌써 1년이 다되어간다.

8월부터 만들기 시작했으니, 흠...

 

그런데 간단한 기능, UI임에도 불구하고 한 번에 안 만들어진다.

남들처럼 만들고 나니 굳이 왜 만들었나 싶다.

그래서 한동안 설치해놓고 안 썼다.

 

그러다 문득 정신이 든다.

내가 쓰지 않으면 남도 안 쓴다.

나를 설득시키지 않으면 남을 설득시킬 수 없다.

기능이 문제가 아니라 내가 문제였다.

뭘 만들고 싶은지 내가 정하지 못했던 거다.

 

기업 프로젝트할 때는 한 번도 생각해본 적이 없던 주제다.

 

보관함

이거 필요했다.

히스토리 기능은 대부분 계산기에 있다.

 

그런데, 한 화면에 안 보인다.

꼭 눌러서 한 단계 더 들어가야 한다.

 

우리 엊그제 얼마 먹었지?

어떻게 N빵 해야 하지?

아, 그 때 한 명 더 계산해야했지.

 

엊그게 계산한 거 찾기가 어렵다.

그래서 늘 다른 메모에 적게 된다.

귀찮다.

히스토리가 한 화면에 보이면 좋겠다.

그래서 보관박스 개념을 넣어버렸다.

 

당연히 히스토리 클릭하면, 이어서 수식을 입력할 수 있다.

고친 다음 다시 저장하고, 지난 건 지워버리면 된다.

오, 쓸만한데?

 

음력 계산기

나는 옛날 사람이다.

어머니 생일, 아버지 제사.

이런 건 음력으로 챙긴다.

그런데, 누가 음력 생일 지낸다고 하면 잘 모르겠다.

 

궁금한데 음력 변환앱이 너무 과하다.

광고가 너무 많다.

맘 먹고 앱을 깔았는데, 광고 천지다.

에고 하나 만들자.

 

특히 음력 달력이 마음에 안든다.

토정비결 볼 때, 음력 날짜가 다르다.

잉, 왜 같은 날짜인데, 음력 날짜가 다르지?

직접 짜봐야겠군.

 

아, 제목을 붙이자.

"OOO 생일", "OOO 기일" 등

 

이제 자주 꺼내보게 된다.

음력에 대한 궁금증을 금방 풀 수 있게 되었다.

 

디데이 계산기

학생들만 디데이를 관리하는 게 아니다.

운동 시작한지 몇일 째,

다음 검진날짜 몇일 째,

이런 거도 알고 싶을 때가 있다.

 

그런데 디데이 어플들이 다 과격하다.

과도한 광고에 알람이 무지막지하게 크다.

시끄럽고 정신 없다.

그냥 조용히 날짜만 알고 싶은데.

 

그래서 만들었다.

제목도 붙이고 몇 가지 기능을 넣어봤다.

음, 괜찮은 거 같다.

 

날짜 계산기

3월 12일부터 5월 20일까지면, 날짜가 몇일이지?

이거 생각보다 암산이 잘 안된다.

 

특히 시간차이까지 계산해야 할 때가 있다.

역시 암산이 잘 안된다.

그래서 만들었다.

 

역시 제목을 붙일 수 있게 했다.

괜찮다.

 

제작 소감

State Machine 을 만들고, MVVM 으로 분리했다.

Cursor AI 가 꽤 도와주니 코딩은 쉬운 편.

 

하지만 코드가 길어져서 읽기 힘들었다.

검증해야 하는데, 자꾸 왔다갔다 한다.

 

귀찮다. 몇 줄 안되니 그냥 짰다.

코드 보기 훨씬 편해졌다.

 

제일 어려웠던 건, Why 를 해결하는 일이었다.

조용히 맞춰가며 사는 스타일이다 보니, 딱히 원하는 게 없었다.

 

그런데 내가 왜 이걸 만드는지 정하지 못하면 기능을 상상할 수 없었다.

화면 레이아웃도 정하지 못했으니.

몇번을 넘게 갈아 엎었는지 모른다.

 

중요한 건 역시 "Why" 다.

이젠 자꾸 열어보게 된다.

뭘 고쳐야 하는지도 보인다.

내가 이 앱을 사용할 수 있게 된거다.

 

하지만, 출시는 역시 요원하다.

계산기 앱이 너무 많다.

상품성이나 경쟁력을 가지는 건 다른 문제인 거 같다.

 

github

지금은 코드가 완전히 달라졌지만, 초반에 해매면서 짰던 0.0.0.1 버전...

Flutter 처음 개발할 때 감 잡기에 좋다.

 

- https://github.com/subokim/firstcalc.git

 

GitHub - subokim/firstcalc: Flutter exercise project

Flutter exercise project. Contribute to subokim/firstcalc development by creating an account on GitHub.

github.com

 

 

끝.

 

댓글