2025/02/26 8

[내일배움캠프Spring-8일차] Java 3주차

✅ 문제풀이- 어제 풀었던 Lv.1 을 코드리뷰 하면서, 주석 수정 및 블로그 정리 글을 올렸다.2025.02.26 - [백엔드 부트캠프/문제풀이] - Lv 1. 클래스 없이 기본적인 연산을 수행할 수 있는 계산기 만들기 Lv 1. 클래스 없이 기본적인 연산을 수행할 수 있는 계산기 만들기1. 요구사항 정의 및 설계요구사항 정의양의 정수 입력받기사칙연산 기호 입력받기양의 정수 2개와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값 출력하기반복문을 사용하되, 반복의 종sintory-04.tistory.com- Lv2 도 어느정도 클래스 구분까지해서 기능을 만들었다. 추가적으로 내일 손 볼 예정이다. (주석이나, 전체적인 흐름 다시 확인할 예정)- Lv3 를 위해서 Swing 을 통해 UI를 구성해보았다...

[Java] Chpater 3 - 05) 람다(Lambda)

1️⃣ 익명 클래스란?익명 클래스는 이름이 없는 클래스를 익명 클래스라고 합니다.별도의 클래스 파일을 만들지 않고 코드 내에서 일회성으로 정의해 사용하기 때문에 이름이 없다고 부릅니다.인터페이스, 클래스(일반, 추상)의 구현과 상속을 활용해 익명 클래스를 구현할 수 있습니다.→ 람다에서는 인터페이스를 사용한 익명 클래스가 활용됩니다.✅ 인터페이스를 활용한 익명 클래스 예제익명 클래스를 코드내에서 직접 구현하기 때문에 클래스 파일을 만들 필요가 없습니다.→ 하지만 코드가 길어집니다.public interface Calculator { int sum(int a, int b);}public class Main { public static void main(String[] args) { ..

코딩 공부/Java 2025.02.26

[Java] Chpater 3 - 04) 제네릭(Generic)

1️⃣ 제네릭(Generic)제네릭은 클래스, 메서드 등에 사용되는 **타입 매개변수**를 의미합니다.타입을 미리 지정하지 않고 사용 시점에 유연하게 결정할 수 있는 문법입니다.제네릭을 활용하면 코드 재사용성과 타입 안정성을 보장받을 수 있습니다.하지만 과도하게 사용하면 오히려 복잡해질 수 있으므로 주의해야 합니다.1. 코드 재사용성다양한 타입에서 동일한 코드로 재사용이 가능합니다.2. 타입 안정성잘못된 타입 사용을 컴파일 시점에 방지합니다.2️⃣ 제네릭이 없는 경우1. 제네릭이 없는 클래스 - 재사용 불가이 클래스는 특정 타입(Integer)으로 고정 되어 있어 재사용이 어렵습니다.String 타입 전용 박스가 필요하다면 다시 만들어야 합니다.다시 사용하려면 다른 클래스를 만들어야 합니다.(낮은 유연성..

코딩 공부/Java 2025.02.26

[Java] Chpater 3 - 03) 컬렉션(Collection)

1️⃣ 컬렉션(Collection)이란?컬렉션 참고사이트:https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html프로그래밍 세계에는 다양한 자료구조가 존재합니다.자바 컬렉션 프레임워크는 이러한 자료구조들을 쉽게 사용할 수 있도록 인터페이스와 구현체(ArrayList, HashSet, HashMap 등)를 제공하는 집합입니다.컬렉션을 통해 데이터 저장, 조회, 삭제, 정렬 등 다양한 기능을 간편하게 구현할 수 있습니다.배열과 다르게 컬렉션은 길이를 동적으로 변경할 수 있습니다.(추가 삭제 시 유연하게 길이가 변경됩니다.) 2️⃣ 배열의 한계배열은 크기가 고정되어 있어서 한 번 설정하면 길이를 변경할 수 없습니다.배열의 길이 초과 시 에러가 ..

코딩 공부/Java 2025.02.26

[Java] Chpater 3 - 02) Optional - null 을 다루는 법

1️⃣ OptionalOptional 객체는 null 을 안전하게 다루게 해주는 객체입니다.null은 프로그래밍에서 값이 없음 또는 참조하지 않음 을 나타내는 키워드null 을 직접 다루는 대신 Optional 을 사용하면 NullPointerException 을 방지할 수 있습니다.✅ Optional 이 필요한 이유camp.getStudent() 는 null 을 반환할 수 있는 메서드입니다.학생이 없는 경우 null을 반환하면 NPE(NullPointerException)가 발생합니다.null인 객체에서 student.getName()을 호출하는 것은 존재하지 않는 객체의 메서드를 실행하려는 것입니다.✅ NullPointerException 을 방지해야 하는 이유NPE 예외는 런타임 예외이고 컴파일러가..

코딩 공부/Java 2025.02.26

[Java] Chpater 3 - 01) 예외(Exception)과 예외처리(try-catch)

- 사전지식을 조금 알아야한다.1️⃣ Java 예외 및 오류 개요1. Exception (예외)예측 가능한 상황에서 발생하는 오류로, try-catch 또는 throws 키워드로 처리 가능하다.✅ Checked Exception (검사 예외)반드시 try-catch로 처리하거나 throws로 선언해야 한다.대표적인 예시:IOExceptionSQLException✅ Unchecked Exception (비검사 예외)RuntimeException을 상속받으며, 예외 처리가 강제되지 않는다.대표적인 예시:NullPointerExceptionIndexOutOfBoundsException2. Error (에러)프로그램이 복구할 수 없는 심각한 문제로, 일반적으로 예외 처리를 하지 않는다.- 대표적인 예시OutOf..

코딩 공부/Java 2025.02.26

[git merge Error]

1. 문자상황- Itelij 로 git 을 연결했다. remote를 add 해주고, git branch 도 새로 만들어주고, `step01`이라는 branch로 push 해주었다.- 그런데 PR 이 뜨지 않는 것이었다. 실제로 Git에 가서 branch를 보면 step01 이라는 branch가 잘 생성된 것을 확인했고, 실제로 step01 branch 에 파일들이 잘 올라와 있었다.- 하지만,, step01의 branch와 main branch를 Merge 할려 했는데 PR 이 뜨지 않아 Merge가 되지 않았다.2. 문제 원인- main 이랑 step01 이 접점이 없어서 에러가 난 거 같다.- read me 를 포함한 채로 Repository를 만들었더니, 새로 만든 step01에다가 main을 me..

Troubleshooting 2025.02.26

Lv 1. 클래스 없이 기본적인 연산을 수행할 수 있는 계산기 만들기

1. 요구사항 정의 및 설계요구사항 정의양의 정수 입력받기사칙연산 기호 입력받기양의 정수 2개와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값 출력하기반복문을 사용하되, 반복의 종료를 알려주는 "exit" 문자열을 입력하기전까지 무한으로 계산을 진행할 수 있도록 하설계클래스 다이어그램: 클래스 없이, App 클래스에서 설계기능 분해: sum, subtract, multiply, divide 데이터 흐름 설계입력단계: 2개의 정수를 입력받기처리단계:종료조건확인: "exit" 입력 시 계산 종료연산처리: 연산자에 따른 계산수행, 나눗셈의 경우 분모가 0 이면 연산 수행 안함, 나눗셈의 경우 실수로 연산 수행출력단계: 결과값 출력 및 종료 안내2. 단계별 문제 풀이1. 양의 정수(0 포함)를 입력받기Sca..