
개념정리

✅ (1) 1부터 최댓값까지 중에서 특정 배수의 합 구하기✅ (2) 1부터 최댓값까지 중에서 “특정 배수이면서 짝수인 수”의 합 구하기✅ (3) 짝수이면서 4의 배수이고, 6의 배수는 아닌 수들의 합 구하기

1. 오늘 배운 핵심 개념 오늘은 while, continue, % 나머지 연산을 이용한 반복문 필터링 로직을 집중적으로 학습했다. while 반복문의 기본 구조: 초기값 → 조건 검사 → 내부 실행 → i 증가 반복 인덱스(i)와 실제 검사값(num)의 역

1. 오늘 배운 핵심 개념 1) 상태 관리(State) 개념 완전 이해 check[]: 이전에 등장한 문자를 저장하는 방문 배열 temp: 직전 문자 저장 isGroup: 최종 판정 플래그 상태 관리가 문자열 문제 해결의 핵심임을 이해함

1. 오늘 배운 핵심 개념 1) 배열의 복사 — Shallow / Deep Copy 배열은 값이 아니라 주소를 저장하기 때문에 얕은 복사와 깊은 복사의 차이를 정확히 이해함. ✔ 얕은 복사 int[] a = {1, 2, 3}; int[] b = a; // 같은 주소

1. 오늘 배운 핵심 개념 1) 클래스(Class) — 설계도 만들기 class Person { String name; int age; } 클래스는 형태만 정의되어 있고 실제 데이터는 없음. 2) 객체(Object, Instance) — 실제 데

1. 오늘 배운 핵심 개념 오늘은 자바에서 자주 등장하는 반복 구조와 객체지향 기본 개념을 집중적으로 정리한 하루였다. 특히 이중 for문 구조, 그리디 알고리즘 개념, OOP 핵심 4요소(상속, 캡슐화, 추상화, 다형성)을 실제 예제와 함께 확인하며 큰 흐름을 잡았

오늘은 재귀 함수와 문자열 처리, 그리고 ArrayList 순회까지 다뤘다. 개념 자체보다 “실행 흐름이 어떻게 움직이는지”를 이해하는 데 집중한 하루였다. 1. 재귀 함수 (Recursion) — 팩토리얼 재귀 함수는 자기 자신을 다시 호출하는 함수이며, 반드시

오늘은 자바에서 가장 헷갈린다는 객체(Object) 개념을 직접 예제를 만들면서 정리했다. 배열, 메소드, 매개변수, 반환값이 한 줄에 섞이니 벽처럼 느껴졌지만, 하나씩 분해해서 보니 흐름이 보이기 시작했다. 앞전에 했던건데도 어렵게 느껴진다. 반복 훈련만이 답인거

1. 오늘 배운 핵심 개념 오늘은 객체지향의 핵심 개념인 상속, 다형성, 추상을 학습했다. 기존에 사용하던 객체와 메소드 개념이 확장되면서, “코드를 재사용하고 구조를 유연하게 만드는 방법”에 집중하는 수업이었다. 2. 상속(Inheritance) 상속은 기존 클

오늘 학원 수업은 Java 기초 파트였다. 이미 알고 있는 내용이었기 때문에, 개념 설명보다는 전체 흐름을 다시 정리하는 데 초점을 맞췄다. 변수, 자료형, 연산자처럼 자주 사용하는 요소들은 정확한 동작 방식이 기준이 되기 때문에, 한 번쯤은 구조적으로 정리해 두는

1. 캐스팅(Casting) — 업캐스팅 / 다운캐스팅 업캐스팅은 더 큰 용량의 자료형으로 변환하는 것(예: char → int)이다. 다운캐스팅은 더 작은 용량의 자료형으로 변환하는 것(예: int → char)이다. 업캐스팅은 비교적 안전해서 암시적 변환이 가능한

1. for 반복문(for loop) 개념 for 반복문은 대부분 반복 횟수가 고정되어 있을 때 사용하는 반복문이다. 구구단이나 일정 횟수만큼 누적 계산을 할 때 구조가 간단해진다. for문과 while문의 선택 기준은 다음과 같다. 반복 횟수가 명확하게 정해져 있

1. 메서드란 무엇인가 메서드는 “특정 작업을 수행하도록 이름을 붙인 코드의 묶음”이다. 프로그램이 실행되면서 필요할 때 해당 작업을 대신 수행하도록 호출된다. 즉, 메서드는 실행 흐름 중간에 “잠깐 이동해서 처리하고 다시 돌아오는 공간”이다. 메서드 자체가 자동으

1. 클래스(Class)란? 클래스는 객체를 생성하기 위한 설계도이며, 틀 또는 청사진에 해당한다. 현실 세계의 사물이나 개념을 프로그래밍으로 표현할 때, 특정 대상의 특징과 행동을 하나의 구조로 정의한다. 클래스는 크게 두 가지 요소로 구성된다. 속성:

1. 생성자 오버로딩 (Constructor Overloading) 생성자 오버로딩이란, 매개변수의 개수나 타입이 다른 여러 생성자를 같은 클래스 안에 정의하는 것을 말한다. 같은 클래스로 객체를 만들더라도 상황에 따라 다른 방식으로 초기화할 수 있어서 유연한 객

이 내용은 Backend / OOP logic in Java 영역에서 “여러 객체를 구조적으로 관리하는 방법”을 다루는 핵심 개념이다. 배열(Array)이 고정 크기·단순 구조라면, 컬렉션(Collections)은 가변 크기, 정렬, 중복 처리, 키-값 구조 등을

1. 배열의 필요성 지금까지 배운 방식대로라면 정수형 데이터 10개를 저장하려면 int 변수를 10개 선언해야 한다. 하지만 데이터가 늘어날수록 변수 선언이 많아지고 관리가 어려워진다. 배열(Array)은 같은 자료형의 여러 데이터를 하나의 변수로 묶

1. Lombok의 필요성 Java(Spring Boot)로 개발을 하다 보면 클래스(DTO, Entity, Service 등)를 만들 때 반복적으로 작성하는 코드가 많아진다. getter / setter 생성자 toString() equals() / hashC

이 내용은 Backend / OOP logic in Java 영역에서 “타입 안전성(Type Safety)”과 “재사용성(Reuse)”을 동시에 확보하기 위한 핵심 문법이다. 이번 과제의 핵심 문제는 printResult(Person person)처럼 특정 클래스에

1. static이란? static은 객체가 아닌 클래스 자체에 소속되는 멤버를 만들 때 사용하는 키워드이다. 일반 필드(인스턴스 변수)는 객체를 생성할 때마다 각각 따로 만들어지지만, static 변수는 클래스당 단 하나만 생성되어 모든 객체가 공유한다. 객체

1. 싱글톤이 필요한 이유 프로그램을 만들다 보면 “어디서든 같은 객체 하나만 공유”해야 하는 경우가 있다. 주차장/창고처럼 전역적으로 하나만 존재해야 하는 관리 객체 설정값(Config) 관리 객체 공통 자원(커넥션 풀, 로깅 등)을 대표하는 객체 만약 이런

1. 향상된 for문 (enhanced for loop) 향상된 for문은 배열이나 컬렉션에 들어 있는 요소(element)를 인덱스 없이 순차적으로 접근하기 위한 반복문이다. 일반 for문과의 가장 큰 차이점은 index 번호를 직접 다루지 않는다는 점이다.

1. 배열 출력에 대한 오해 지금까지 배열을 다룰 때 우리는 배열 자체를 출력했다기보다는, 배열 안에 들어 있는 element들을 하나씩 꺼내 출력해왔다. 실제로 System.out.println(arr);처럼 배열을 바로 출력하면 값이 아니라 주소값이 출력된

2차원 배열(Multi-Dimensional Array) 정리 자바에서 다차원 배열은 배열 안에 배열이 들어 있는 구조를 의미한다. 실무에서는 3차원 이상 배열을 사용하는 경우가 드물기 때문에, 보통 2차원 배열을 기준으로 학습한다. 2차원 배열은 행(row)

상속(Inheritance) 정리 상속은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 기존 클래스(부모/슈퍼 클래스)의 field와 method를 재사용해서 새로운 클래스(자식/서브 클래스)를 만드는 방식이다. 즉, “공통 기능은 위에 모으고”, “개별

추상 클래스(Abstract Class) 정리 이 내용은 Backend/OOP logic in Java 영역(객체지향 설계)에서 쓰이는 개념이다. 추상 클래스는 “상속을 전제로 한 설계 도구”로, 공통 기능은 부모(추상 클래스)에 모으고, 자식 클래스가 반드시 구

인터페이스(Interface) 정리 이 내용은 Backend/OOP logic in Java 영역(객체지향 설계)에서 다형성과 구조 분리를 위해 사용하는 핵심 개념이다. 인터페이스는 클래스가 “반드시 구현해야 하는 메서드들의 집합”을 정의하는 일종의 규약(Prot

참조 자료형 캐스팅(Reference Type Casting) 이 내용은 Backend / OOP logic in Java 영역에서 다형성(Polymorphism)을 실제 코드 구조로 구현할 때 반드시 필요한 개념이다. 참조 자료형 캐스팅은 “객체 자체를 바꾸는 것”

Object 클래스 (Java의 최상위 클래스) Java에서 모든 클래스는 자동으로 Object 클래스를 상속받는다. 즉, 우리가 어떤 클래스를 만들든지 간에 extends를 명시하지 않아도 내부적으로는 Object를 부모로 갖는 구조다. 그래서 클래스에서 A

Builder Pattern(빌더 패턴) 이 내용은 Backend / OOP design in Java 영역에서 “객체 생성(creation)”을 안정적으로 설계하는 대표 패턴이다. 필드가 많아질수록 생성자 기반 생성 방식은 유지보수·가독성·확장성에서 한계가 생기

이 내용은 Backend / Java(OOP & Collection Framework) 영역에서 “여러 개의 데이터를 순서대로 관리”할 때 가장 많이 쓰는 구조다. List는 순서(인덱스)가 있고, 중복을 허용하며, 크기가 동적으로 늘어나는 자료구조다. 1)

업로드중..

이 내용은 Backend / Java(Collection Framework) 영역에서 “key–value 구조로 데이터를 매핑”할 때 사용하는 핵심 자료구조다. HashMap은 key는 중복 불가, value는 중복 허용, 그리고 순서가 보장되지 않는다. 1)

이번 글은 Backend / Java(JSON 직렬화·역직렬화) 영역에서 자주 쓰는 JSON 변환을 정리한다. Java에서 API 응답(JSON)을 다룰 때 핵심은 두 가지다. Java 객체(또는 Map)를 JSON 문자열로 바꾸기(Object → JSON)

이 내용은 Backend / OOP logic in Java 영역에서 “프로그램을 비정상 종료시키지 않고, 예외 상황을 제어 가능한 흐름으로 바꾸는 방법”을 다루는 Exception Handling(예외 처리) 정리이다. 기존 코드에서 잘못 사용된 예외 타입(에러

이번 글에서는 Backend / OOP logic in Java 영역에서 자주 등장하는 익명 클래스(Anonymous Class)를 정리한다. 추상 클래스(Abstract Class)와 함께 사용할 때 어떤 의미를 가지는지, 그리고 “일회성 구현”이 왜 필요한지

이번 글은 Backend / OOP logic in Java 영역에서 매우 자주 사용되는 Lambda Expression(람다식)을 정리한다. 람다는 단순히 “짧게 쓰는 문법”이 아니라, 메서드(동작)를 하나의 식(Expression)으로 표현하여 값처럼 전달하기