반복문 · 그리디 · 객체지향 감 잡기

최병현·2025년 12월 10일

java

목록 보기
7/38
post-thumbnail

1. 오늘 배운 핵심 개념

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

또한 오늘 구현한 프로젝트 코드에서 발생한 오류를 직접 수정하면서 메서드 파라미터, equals 비교, getName 사용 방식 등 객체 간 데이터 접근 구조까지 자연스럽게 이해했다.


2. 오늘 실습 1 — 이중 for문 완전 이해

이중 for문은 바깥 반복(i)이 한 번 돌 때마다 내부 반복(j)이 전체를 모두 실행하는 구조라는 점을 학습했다. 이를 통해 2차원 배열, 좌석 예매 시스템, 별찍기 문제의 기본 원리를 이해하게 되었다.

// 기본 구조 for (int i = 0; i < A; i++) { for (int j = 0; j < B; j++) { // 내부 반복 } } 

3. 오늘 실습 2 — 그리디 알고리즘 개념 이해

그리디는 “매 순간 최선의 선택”만 하는 알고리즘이라는 점을 배웠다. 거스름돈 문제, ATM 대기시간 최소화, 회의실 배정 문제처럼 정렬 + 반복 구조로 해결하는 문제들에서 자주 등장한다.


4. 오늘 실습 3 — OOP 핵심(상속·캡슐화·추상화·다형성)

객체지향의 네 가지 핵심 요소를 실제 예제와 비유를 통해 정리했다.

• 상속: 부모 기능을 자식이 물려받는 구조
• 캡슐화: 데이터 보호(private + getter/setter)
• 추상화: 중요한 기능만 먼저 선언하고 구현은 자식이 맡음
• 다형성: 같은 메서드 호출이 객체에 따라 다르게 동작


5. 오늘 실습 4 — 프로젝트(학생 성적 관리 / 영화 좌석 예매)

오늘은 두 가지 프로젝트의 전체 구조를 작성하고, Manager 클래스 / 데이터 클래스 설계 방법을 익혔다.

특히 findByName 오류 해결 과정에서

  • 메서드 파라미터 필요성
  • searchName() → getName() 수정
  • equals 비교 방식

등 객체 데이터 접근 방식까지 자연스럽게 정리되었다.


6. 어려웠던 점

• 이중 for문에서 “왜 안쪽을 또 돌리는지” 이해가 처음에 어려웠다.
• 메서드 파라미터 누락, 잘못된 메서드 이름(searchName) 등 기본 실수가 자주 발생했다.
• OOP 개념(상속·다형성)이 처음엔 추상적이었다.


7. 해결 & 깨달음

• 이중 for문은 “바깥 1회 → 안쪽 전체 반복” 구조라는 원리를 반복 예제로 이해함.
• findByName 오류는 파라미터와 getter 개념을 정확히 이해하면서 해결됨.
• OOP 네 가지 개념은 예제 코드 + 비유가 함께 들어오니 훨씬 쉽게 정리됨.
• 전체 코드 흐름을 오늘 만든 두 프로젝트에서 직접 체험하며 자신감 상승.


8. 내일 목표

• 학생 성적 관리 프로젝트 기능 추가(삭제, 정렬, 파일 저장 택1)
• 영화 좌석 예매 프로그램 좌석 취소 기능 구현
• 그리디 알고리즘 쉬운 문제 2개 풀기 (5585, 11047)
• OOP 실습 문제 1개 만들어보기


9. 느낀 점

오늘은 자바 문법 + 객체지향 개념 + 실전 프로젝트가 한 번에 연결된 날이었다. 문법 단위로만 볼 때는 어렵게 느껴졌던 개념들도 프로젝트에 적용하니까 훨씬 자연스럽게 이해되었다.

실수도 몇 번 있었지만 그 과정에서 더 깊이 이해했고, 뜻 깊은 하루였다.


profile
Develop

0개의 댓글