IntelliJ 랑 github 연동을 하는데 구글링 한 방법을 다 써봐도 계속 같은 오류가 발생했다.
결국 챗 GPT한테 물어보니 로컬 브랜치와 리모트 브랜치 간에 충돌이 발생했다 한다.
로컬 변경 사항이 리모트 변경 사항과 충돌하여 병합이 필요하단다.
병합 (Merge):
git pull origin main --merge
리모트 저장소의 변경 사항을 로컬 브랜치로 가져와서 병합하고 완료되면 다시 푸시할 수 있다.
재베이스 (Rebase):
git pull origin main --rebase
로컬 변경 사항을 일시적으로 임시 저장하고, 리모트 변경 사항을 가져와서 로컬 변경 사항 위에 적용
이후에 충돌이 발생하지 않으면 로컬 브랜치를 리모트 브랜치로 간단하게 이동시킬 수 있다.
Fast-forward Only:
git pull origin main --ff-only
리모트 변경 사항을 가져와서 로컬 브랜치를 리모트 브랜치로 빠르게 이동시킴
이 경우, 로컬에 있는 변경 사항이 리모트 변경 사항과 충돌하지 않아야 한다.
package main.java.calculator;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> numbers = new ArrayList<Integer>(); // 컬렉션 타입 변수 선언 및 생성
while (true) {
System.out.print("첫 번째 숫자를 입력하세요: ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자를 입력하세요: ");
int num2 = sc.nextInt();
System.out.print("사칙연산 기호를 입력하세요: "); // +, -, *, /
/* charAt(idx) : charAt 메서드는 매개변수로 char 타입으로 변환하고자하는 문자열 위치 받는다*/
char operator = sc.next().charAt(0);
int result = 0;
if (operator == '+') {
result = num1 + num2;
} else if (operator == '-') {
result = num1 - num2;
} else if (operator == '*') {
result = num1 * num2;
} else if (operator == '/') {
if (num2 != 0) {
result = num1 / num2;
} else {
System.out.println("나눗셈 연산에서 분모에 0이 입력될 수 없습니다.");
continue;
}
} else {
System.out.println("기호를 잘못 입력했습니다.");
continue;
}
System.out.println("결과: " + result);
// remove 입력 시 가장 먼저 저장된 결과 삭제
System.out.print("가장 먼저 저장된 연산 결과를 삭제하시겠습니까? (remove 입력 시 삭제) ");
String removeInput = sc.next();
if (removeInput.equals("remove")) {
numbers.remove(0); // ArrayList의 첫 번째 요소 삭제
System.out.println("가장 먼저 저장된 결과가 삭제되었습니다.");
}
// 연산 결과 ArrayList에 추가
numbers.add(result);
System.out.println("저장된 연산결과를 조회하시겠습니까? (inquiry 입력 시 조회) ");
String inquiryInput = sc.next();
if (inquiryInput.equals("inquiry")) {
for(Integer i : numbers) {
System.out.print(i + " ");
}
System.out.println();
}
System.out.print("더 계산하시겠습니까? (exit 입력 시 종료) ");
String exit = sc.next();
if (exit.equals("exit"))
break;
}
// 배열에 저장된 연산 결과 출력
System.out.println("저장된 연산 결과: ");
for(Integer num : numbers) {
System.out.print(num + " ");
}
}
}
과제 하루면 하겠지 하고 여유롭게 개인 공부 했더니 발등에 불 떨어졌다.
Level 1 이면 수월하게 할 줄 알았는데 중간단계 이후부터는 금방 코드가 떠오르지 않아서 당황했다.
작성된 코드를 보면 코드 이해는 되는데 처음부터 직접 코딩하기까지 생각하는 시간이 많이 필요한 것 같다.