자바 클래스와 객체 차이, Java를 배우기 시작하면 가장 먼저 마주치는 개념인데 막상 설명하려면 말문이 막히는 분들이 많습니다. “클래스는 설계도고 객체는 실체”라는 말, 들어는 봤는데 코드로 보면 왜 이렇게 헷갈릴까요? 사실 이 두 개념만 제대로 이해하면 객체지향 프로그래밍(OOP)의 절반은 이해한 것입니다. 이 글에서는 붕어빵 틀과 붕어빵이라는 친숙한 비유부터 시작하여, 메모리에서 실제로 어떤 일이 벌어지는지, 면접에서 어떻게 […]
실무에서 private를 기본으로 사용하는 이유, 처음 코드 리뷰를 받을 때 “왜 이 필드가 public이에요?”라는 피드백을 받고 당황했던 경험 있으신가요? 학교나 강의에서는 public으로 빠르게 돌아가는 예제를 많이 접하다 보니, 실제 현업에 들어와서 private가 기본값처럼 쓰이는 문화가 낯설게 느껴질 수 있습니다. 하지만 이건 단순한 코딩 스타일 취향이 아닙니다. 수십 년간 소프트웨어 공학이 쌓아온 설계 원칙과 수많은 실패에서 비롯된 규칙입니다. […]
“객체지향이 뭔가요?”라는 면접 질문 앞에서 머릿속이 하얘진 경험이 있으신가요? 자바 객체지향 4대 원칙은 단순히 외워야 하는 개념이 아닙니다. 왜 코드를 클래스로 나누는지, 왜 private을 쓰는지, 왜 인터페이스가 필요한지처럼 실제 코드 설계의 모든 판단 뒤에 이 네 가지 원칙이 자리하고 있습니다. 캡슐화·상속·다형성·추상화 각각의 의미와 동작 원리를 실전 코드와 함께 처음부터 끝까지 완벽하게 정리합니다. 목차 1. 객체지향 프로그래밍이란 무엇인가: […]
Java 접근제어자를 제대로 이해하지 못하면, 모든 필드와 메서드를 public으로 선언해 객체 내부 상태가 외부에서 무분별하게 바뀌거나, protected를 써야 할 자리에 public을 쓰다가 패키지 밖의 클래스가 내부 구현에 직접 의존하게 되어 리팩토링이 불가능해지는 상황을 겪게 됩니다. “어차피 같은 프로젝트 코드인데 다 public으로 해도 되지 않나요?”라는 생각은 객체지향의 핵심 원칙인 캡슐화(Encapsulation)를 포기하는 것과 같습니다. 접근제어자는 단순히 “누가 […]