📝 오늘의 강의 요약
핵심 키워드: 캡슐화(Encapsulation), 접근 제어자, 정적 멤버(Static), 상수(Final), 시멘틱 구조, CSS 포지셔닝
- Java: 클래스 구성 요소의 접근 제어 및 객체지향의 핵심인 캡슐화 이해
- HTML/CSS: 체크박스를 활용한 탭 메뉴 구현 및 절대/상대 위치 지정 학습
- 추천 도서: 《객체지향의 사실과 오해》 (캡슐화 및 객체지향적 사고방식 함양 추천)
☕ Java 클래스 및 객체지향 심화
1. 캡슐화(Encapsulation)와 접근 제어자
- 개념: 외부의 잘못된 접근으로부터 데이터 보호 및 내부 로직 은닉
- 접근 제어자 종류:
| 제어자 | 접근 범위 | 비고 |
| public | 모든 패키지, 모든 클래스 | 제한 없음 |
| protected | 같은 패키지 + 자식 클래스 | 상속 관계에서 유효 |
| default | 같은 패키지 내 클래스 | 별도 키워드 없음 |
| private | 해당 클래스 내부만 | 캡슐화의 핵심, Getter/Setter 필수 |
2. Getter와 Setter 메서드
- 필드(멤버 변수): 가급적 private으로 선언하여 직접 접근 차단
- 데이터 수정(Setter): 매개변수 검증 후 값 대입 (예: 음수 나이 차단)
- 데이터 읽기(Getter): 필드 값을 외부로 안전하게 전달
- this 키워드: 클래스 내부 필드와 메서드 매개변수의 이름이 같을 때 구분자로 사용
3. 인스턴스(Instance) vs 정적(Static) 멤버
- 인스턴스 멤버: new 연산자로 객체 생성 후 사용 가능한 변수 및 메서드
- 정적 멤버(Static): 객체 생성 없이 클래스명으로 즉시 접근 가능 (메모리 로드 시 자동 생성)
- 정적 메서드 주의사항: 메서드 내부에서 인스턴스 필드나 인스턴스 메서드 사용 불가
4. 상수(Constant) 선언
- 문법: static final 타입 상수명 = 초기값;
- 특징: 프로그램 전체에서 공유되며 변경 불가능한 값
- 명명 규칙: 모두 대문자로 작성하며 단어 사이는 언더바(_)로 연결
🌐 HTML & CSS 시멘틱 레이아웃
1. 고급 CSS 선택자 및 기법
- 가상 클래스 활용:
- p:first-child: 첫 번째 자식 요소 선택
- nth-of-type(n): 동일 타입 중 n번째 요소 선택
- 상태 선택자 조합:
- input[type="checkbox"]:checked ~ #view: 체크박스 상태에 따라 특정 요소 노출 제어
2. 레이아웃 핵심 속성 정리
- Position (위치 지정):
- relative: 원래 있어야 할 위치 기준
- absolute: 부모 요소(상위 포지션 요소) 기준 자유 배치
- Overflow (넘침 처리):
- hidden: 박스를 벗어나는 콘텐츠 숨김
- border-radius 적용 시 함께 사용하여 모서리 마감 처리
- Display (노출 제어):
- none: 공간까지 삭제하며 숨김
- block: 한 줄 전체 차지하며 노출
🗂️ 자바 메인 메서드 구조 분석
public static void main(String[] args)
- public: 가상머신(JVM)이 어디서든 호출 가능하도록 설정
- static: 객체 생성 없이 프로그램 시작 시 즉시 실행
- void: 메서드 실행 후 반환하는 값이 없음
- String[] args: 실행 시 입력받는 문자열 배열 매개변수
💡 추가 팁
- 싱글톤 패턴(Singleton): 객체를 단 하나만 생성하도록 보장하는 기법으로, private 생성자와 static 메서드를 결합하여 구현 가능
- 함수 오버로딩: 동일한 메서드 이름으로 매개변수의 타입이나 개수만 다르게 하여 여러 개 정의 가능
'⏳ Time Log > 1. One Day (Daily · TIL)' 카테고리의 다른 글
| Day 10 (10/31) - Java 상속 개념 심화 (0) | 2026.02.18 |
|---|---|
| Day 9 (10/30) - Java 상속 및 오버라이딩 (0) | 2026.02.18 |
| Day 7 (10/28) - Java 정렬 알고리즘 및 CSS 심화 (1) | 2026.02.18 |
| Day 6 (10/27) - Java 클래스 활용 (0) | 2026.02.18 |
| Day 5 (10/24) - Java 제어문 및 코드 복기 (0) | 2026.02.18 |