계산기 만들기 12

KPT 24.11.11-24.11.20 '계산기 만들기' (개인 프로젝트)

[What I've Done]1. 프로젝트 이름: 계산기 만들기2. 한 일: 하나는 클래스 없이, 다른 하나는 클래스를 활용하여 사용자가 입력한 연산자 및 두 정수로 사칙연산을 수행하는 계산기 제작3. 사용한 언어: Java  [Keep]1. 어려운 부분이 생기면 30분 이내로 고민하고 튜터님께 바로 찾아가기 2. 주어진 시간 안에 어떻게든 요구사항에 맞추어 필수 과제를 해서 제출하는 끈기 3. 문제가 생기면 미루지 않고 해결한 날에 트러블슈팅(Troubleshooting)을 작성하는 태도 4. 짧게라도 매일 TIL을 작성해서 제출하는 성실성5. 다양한 사람의 의견을 듣고 그 중 근거를 바탕으로 골라서 적용하는 태도 6. 특강을 듣거나 튜터님이 알려주실 때 항상 메모 프로그램을 켜서 기록하는 습관  [P..

KPT 24.11.11-24.11.20 '계산기 만들기' (개인 프로젝트)

[What We've Done]1. 프로젝트 이름: 계산기 만들기2. 한 일: 하나는 클래스 없이, 다른 하나는 클래스를 활용하여 사용자가 입력한 연산자 및 두 정수로 사칙연산을 수행하는 계산기 제작3. 사용한 언어: Java  [Keep]1. 어떤 언어로든 '미안합니다.' 또는 '죄송합니다.' 금지인 팀 규칙 0번2. 퇴실하기 전 항상 팀 전체에 학습 시간이 12시간을 넘었는지 확인하고 퇴실 버튼을 누르라고 공지한 점3. 팀장이나 팀원이 물어볼 때 바로 마이크를 켜서 대답한 점4. 서투르지만 노션(Notion) 문서를 생성하겠다고 나선 태도 [Problem]1. 팀이 바뀌고 나서 어색한 분위기를 크게 느낌 [해결] 데일리 스크럼과 회고 시간을 갖자고 제안하여 팀원 모두 얘기하는 시간을 확보함 [Try]..

24.11.13(수) "변수 전용 작명소는 없나요?" (1단계 계산기)

[문제]import java.util.Scanner;public class CalcLvOne { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("0 이상인 첫 번째 정수를 한 개 입력해 주세요: "); int numOne = sc.nextInt(); System.out.print("0 이상인 두 번째 정수를 한 개 입력해 주세요: "); int numTwo = sc.nextInt(); sc.nextLine(); ..

2단계: "반복문 안에서 인스턴스화를 했다고요? 갑부시군요!"

[문제]분명 가장 먼저 저장된 결괏값을 삭제하지 않았으니 나누기 연산을 했을 때 [55, 3]이 출력되어야 하는데 [3]이 출력되었다. 처음에는 클래스를 작성할 때 for문 같은 반복문을 쓰지 않아서 발생한 문제인 줄 알았다.  [원인 추측]package com.project.personal.calculator2;import java.util.*;public class CalcLvTwo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("0 이상인 첫 번째 정수를 입력해 주세요: "); ..

Spring 본캠프 Day 045 - 2단계 계산기 완료, 과제 제출, 첫 리드미(README) 작성

온 집중력을 발휘하여 오후 2시 전에 과제를 제출했다. 링크로 제출하다보니 나중에 내용을 더 보충할 수 있어서 다행스러웠다. 첫 개인 과제를 마침 소감은 뭐랄까, 끝이라는 느낌이 전혀 들지 않았다. 내일 오전에 추가 발제가 예정됐기도 하지만, 공부에 끝이 없어서 그럴지도 모른다. 2단계 계산기를 완성할 땐 20분 정도 밖에 안 걸렸는데 깃허브(Github)에 파일을 올리는 데에는 두 배나 더 오래 걸렸다. 오죽하면 "그냥 USB 들고 다니면 안 될까요." 곡소리가 절로 나왔다. 아무튼 남은 트러블슈팅(Troubleshooting)만 정리하면 정말 끝이다.처음부터 3단계 계산기는 깔끔하게 포기하고 필수인 1단계와 2단계 계산기를 제대로 만들자고 다짐해서 그렇게 아쉽진 않았다. 목표를 달성했다는 사실이 훨씬..

2단계: 절차 지향 add() vs 객체 지향 add()

[문제]package com.project.personal.calculator2;import java.util.*;// [참고] 패키지 전체를 불러오고 싶을 때 사용public class Calculator { ArrayList results = new ArrayList(); public Calculator() { } public int calculate(int numOne, String operator, int numTwo) { if (operator.equals("+")) { return numOne + numTwo; } else if (operator.equals("-")) { return numOne - numT..

Spring 본캠프 Day 044 - 과자 봉지 대신 2단계 계산기 부스럭거리는 중

얼마나 정신이 없었으면 어제 오류 정정 안내 문자를 받았단 사실까지 망각했다. 2주 차 강의 9강 이후로는 필기 없이 쭉 듣기만 해서 오류 정정 요청을 못 했는데. 지금 보니 그전까진 강의 자료와 코드 스니펫(Code Snippet)을 얼마나 꼼꼼히 읽고 따라 쓴 걸까, 여러 감정이 뒤섞여 요동친다. 어제 온종일 우울의 늪에 빠져 허우적댄 탓인지 덕분인지, 오늘은 2단계 계산기를 만드는 내내 오류가 발생해도, 노란 줄로 경고가 보여도 담담했다. 진짜 냅다 들이박는 식으로 어려운 걸 겪었더니 이 정도로는 심장이 코웃음조차 치지 않았다.  '음, 막혔네. 왜 막히지? 아, 이 개념이 헷갈려서 그렇구나. 튜터님께 가서 해결할 방법을 찾아보자.' '으음, 의도와 다르게 구현되네? 이렇게 해결하면 좋겠는데, 더 ..

2단계: 반환타입이 int라서 return "문자열"이 불가능할 때

[문제]package com.project.personal.calculator;public class Calculator { public Calculator() { } public int calculate(int numOne, String operator, int numTwo) { if (operator.equals("+")) { return numOne + numTwo; } else if (operator.equals("-")) { return numOne - numTwo; } else if (operator.equals("*")) { return numOne * numTwo; ..

2단계: sc.nextLine(); vs sc.next();

[문제]package com.project.personal.calculator;import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("첫 번째 숫자를 입력해 주세요: "); int numFirst = sc.nextInt(); System.out.print("사칙연산 기호(+, -, *, /) 중 하나를 입력해 주세요: "); String operator = sc.nextLine(); // [원인 추측] print 대신 println이라고 해야..