Java2 Java 객체지향 (상속, 오버라이딩, 오버로딩) 저도 처음엔 상속, 오버라이딩, 오버로딩이 그냥 비슷한 개념인 줄 알았습니다. 이름도 헷갈리고, 뭐가 다른지 제대로 구분이 안 됐습니다. 직접 챔피언 예제를 짜보면서 세 개념이 완전히 다른 목적으로 쓰인다는 걸 몸으로 익혔고, 그 과정에서 일반적으로 알려진 것과 실제 사용 방식이 꽤 다르다는 것도 알게 됐습니다.상속과 오버라이딩: 코드 재사용이라는 말의 실제 의미상속(Inheritance)은 기존 클래스의 변수와 메서드를 그대로 물려받아 새 클래스를 만드는 기능입니다. 여기서 상속이란 단순히 코드를 복사하는 게 아니라, 부모 클래스가 가진 구조 전체를 자식 클래스가 이어받아 활용하는 방식을 의미합니다. 일반적으로 "코드 재사용을 위해 상속을 쓴다"고 알려져 있는데, 저는 처음에 그 말이 그냥 복붙 아닌가.. 2026. 6. 19. Java 어노테이션 (메타데이터, MVC패턴, 레이어드 아키텍처) @Override 하나 붙인다고 코드가 달라질 거라고 생각하셨나요? 저도 처음엔 그냥 IDE가 붙여주는 장식 정도로 여겼습니다. 그런데 직접 커스텀 어노테이션을 만들고 리플렉션으로 클래스 동작을 제어해보니, 어노테이션이 단순한 메모가 아니라 실행 흐름 자체를 바꾸는 장치라는 걸 몸으로 이해하게 됐습니다.어노테이션, 그냥 주석이 아니었습니다어노테이션(Annotation)이란 Java 소스코드에 메타데이터(Metadata)를 추가하는 기능입니다. 여기서 메타데이터란 코드 자체의 로직은 아니지만, 코드가 어떻게 처리돼야 하는지 부가 정보를 제공하는 데이터를 의미합니다. @Override, @Deprecated처럼 JDK에서 기본 제공하는 것부터, @Autowired나 @RequestMapping처럼 Sprin.. 2026. 6. 17. 이전 1 다음