세상을 조금이라도 바꿀 무언가를 만들어보겠다는 원대한 포부를 갖고 개발 공부를 시작했다.
그러나 너무나도 거대해져버린 CS와 Dev domain의 legacy들에 짓눌린 채,
몇 십만원 어치의 쌓여있는 새 책들을 보며, 그리고 기껏 PS 1일 1솔 정도하며 자위만 해대고 있었다.
무엇을 만들어볼까가 아니라 어떤 강의를 들을까 여기저기 surfing만 해대며 허송세월한지 어언 3개월.
추석을 잘 보내고 상경하는 길에 우연히 본 영상을 보고 계산기를 만들어보기로 했고,
코드 한 줄도 치지 못하는 나를 마주하고는 망치로 머리를 맞은 기분이었다.(실제로 맞아봄.)
적성에 맞지 않는 건가, 머리가 굳어버린 건가 등의 생각을 하던 도중 유튜브 노마드 코더 님의 영상이 알고리즘 추천으로 보였다.
- Build Things
- 준비된 상태란 없다.
- Don't check boxes what I have to learn, Do check project list what I have to build.
- Set the due date.
덕분에 나의 방향이 크게 잘못되어 있었다는 것을 깨닫고 다시 태어나려 한다. (고마워요 알고리즘!)
그 첫 걸음으로 만드는, 다시 태어남을 기념하고 자축하는 계산기 프로젝트이다.
간단한 계산기를 구현한다. 다만, 다시 태어남을 기념하며 "Rev." 버튼을 누르면 새로운 계산기가 태어나도록 했다.
Date : 220913~220916
- 디자인 설계
- Frame, ButtonAction, Calculate, 실행 의 4개 클래스로 계산기 구현.
- Frame setting
- 버튼액션 구현
- 계산기능 구현
- 클래스간 관계 정리
- 기본적인 계산기 구현 완료.
- unsolved challenge 해결
- revival 기능 구현.
- 추가로 해야할 것 정리.
- 디버깅
- 구현완료
- button 색이 안바뀜.
- 클래스 관계 정리 안됨 => Frame에 버튼액션 새로 생성되게 하고, 버튼 액션 생성자가 JTextField(프레임에서 결과값 보이는 부분)과 Calculate(계산 클래스)를 파라미터로 가지게 해서 해결
- 숫자 입력해도 0이 앞에 남아있음 => 숫자 버튼 누를시 setText에 if문 달아줌
- 기타 버튼들 구현 안됨 (00, ^) => 00 구현 따로 안해도 되게 그냥 string array로 입력값 처리. "^" 기능 구현 완료.
- 계산 결과 후에 숫자 누르면 결과에 이어서 나옴. => Frame 클래스에 static 필드 선언하고 "="버튼 누르면 true 값 반환하게 함.
- 버튼 오류. 안지워짐. => 구현 완료.
- 나눗셈 할때 무한소수의 경우 뒷자리가 보임 => "=" 버튼 누를 때 length 8넘어가면 8까지 잘라서 보임.