Java_004 (20250507)


Remark

게으름과 긴장감은 공존하지 않는다. 부지런하려면 어느 정도 긴장감이 필요하다.

전문직은 국가공인시험으로 증명되나, 개발자를 비롯한 일반 직종은 그러한 자격증이 없고 career로 전문성이 결정된다.

전문성 함양을 위해서는, 결과물인 프로젝트들이 평가의 척도이며, 이를 위해서는 규칙적인 시간 투자와 일시적이고 몰입하는 시간 투자를 통한 일의 마무리가 모두 필요하다.

Java

패턴 & 프레임워크 & 스프링

자바의 중급 과정이라고 칭할만한 건 패턴 학습과 스프링이다.

개념 정의 비유
패턴 (Pattern) 자주 발생하는 문제를 효율적으로 해결하기 위한 설계 공식. 👷‍♂️ "집을 지을 때 창문은 이렇게, 문은 이렇게 설치하면 좋아"라는 건축 노하우
프레임워크 (Framework) 개발자가 일정한 규칙 내에서 빠르게 개발할 수 있도록 제공되는 기초 틀(틀 + 도구) 🏗️ "기초 골조와 설비가 이미 갖춰진 빌라 구조물. 방 배치만 하면 됨"
스프링 (Spring) 자바 기반의 대표적인 프레임워크로, DI/AOP 등의 기능을 갖춘 전문 빌라 키트 🏢 "설비부터 보안 시스템까지 이미 갖춰진 최고급 빌라. 입주만 하면 됨"

오버로딩 & 오버라이딩

구분 오버로딩 (Overloading) 오버라이딩 (Overriding)
정의 같은 이름의 메서드를 매개변수만 다르게 여러 개 정의 부모 클래스의 메서드를 자식 클래스에서 재정의
위치 같은 클래스 내에서 상속 관계(부모-자식 클래스)
매개변수 반드시 다르게 (개수, 타입, 순서) 부모 메서드와 완전히 동일해야 함
반환형 달라도 됨 반환형도 같아야 함 (자바 5 이후 공변 반환 허용)
접근 제한자 제한 없음 부모보다 좁으면 안 됨 (예: public → private ❌)
static 여부 static 메서드도 가능 static 메서드는 오버라이딩 불가
목적 다양한 입력에 대응하는 유연한 메서드 구성 부모 메서드를 자식 클래스에 맞게 수정
예시 print(int a) / print(String s) toString()을 자식 클래스에서 재정의

클래스의 구조

필드, 생성자, 메소드로 구성되며, 필드는 전역 변수, 속성(attribute)을 선언한다. 속성은 행렬로 이루어진 표인 data base의 열 이름이라고도 볼 수 있다.

매개변수 & 인자(인수)

용어 영어 정의
매개변수 Parameter 메서드 정의부에서 값을 받을 변수 이름즉, 받을 준비를 하는 변수
인자/인수 Argument 메서드를 호출할 때 실제로 전달하는 값즉, 보내는 쪽의 값
✅ 둘은 관점 차이 - 메서드 정의 측: 매개변수 (받음)- 메서드 호출 측: 인자/인수 (줌)

가변길이 매개변수

int … iterable명

이 때, 관습적으로 iterable의 이름은 복수형으로 선언한다.

함수 & 메소드

함수는 특정 작업을 수행하는 독립된 프로그램 단위이며, 메소드는 그러한 함수 중 클래스 내에 선언된 함수이다.