📝 오늘의 강의 요약
핵심 키워드: 반복문 제어, 참조 타입, 메모리 영역(Stack/Heap), 배열 복사, CSS 선택자 우선순위
- Java: break/continue를 통한 제어, 메모리 구조 이해, 배열 및 String 메서드 활용
- HTML/CSS: 선택자 조합 및 우선순위 계산, display 속성과 margin 단축 속성 파악
☕ Java 심화 및 참조 타입
1. 반복문 제어 (Break & Continue)
- break: 반복문 조건을 충족하기 전이라도 즉시 전체 반복 종료
- continue: 현재 회차의 남은 코드를 건너뛰고 다음 반복 회차로 진행
2. 메모리 사용 영역 (Runtime Data Area)
- 메소드 영역(Method Area): 클래스별 바이트코드, 전역 변수 등 공용 데이터 저장
- 힙 영역(Heap Area): new 연산자로 생성된 객체 및 배열이 저장되는 공간 (참조 타입의 실제 데이터)
- 스택 영역(Stack Area): 기본 타입 변수 및 참조 타입 변수의 주소값 저장 (LIFO 구조)
3. String 주요 메서드 요약
| 메서드 |
기능 설명 |
비고 |
| charAt(index) |
특정 위치의 문자 추출 |
배열처럼 0부터 시작 |
| length() |
문자열 전체 길이 반환 |
|
| replace(old, new) |
특정 문자열을 새 내용으로 교체 |
|
| substring(b, e) |
b인덱스부터 e인덱스 앞까지 잘라내기 |
|
| indexOf(str) |
특정 문자열의 시작 위치 찾기 |
|
| split(regex) |
정규표현식 기준으로 문자열 분리 |
배열로 반환 |
| trim() |
문자열 앞뒤 공백 제거 |
중간 공백은 유지 |
4. 배열(Array) 관리 및 복사
- 특징: 같은 타입만 저장 가능, 생성 후 길이 변경 불가, 힙 영역에 객체로 생성
- 배열 복사 (System.arraycopy):
- 형식: System.arraycopy(원본, 원본시작, 대상, 대상시작, 복사길이)
- 효과: for문보다 빠르고 효율적인 데이터 복사 가능
🎨 HTML & CSS 레이아웃 및 선택자
1. CSS 선택자 우선순위 및 조합
- 우선순위 점수: !important > ID(100) > Class(10) > Tag(1) > 전체 선택자(0)
- 조합 선택자:
- A > B: A의 직계 자식인 B만 선택
- A ~ B: A의 뒤에 오는 모든 형제(동생) B 선택
- A + B: A의 바로 다음에 오는 형제 B 딱 하나만 선택
- :nth-child(n): 부모 안에서 n번째 자식 요소 선택
2. Display 속성 비교
| 값 |
특징 |
줄 바꿈 여부 |
| block |
가로 너비 100% 차지, 크기 조절 가능 |
O |
| inline |
텍스트만큼 차지, 크기(W/H) 조절 불가 |
X |
| inline-block |
나란히 배치되면서 크기 조절 가능 |
X |
| none |
화면에서 보이지 않고 공간도 차지하지 않음 |
- |
3. Margin 단축 속성 (Clockwise)
- 원칙: 위(Top)부터 시작하여 시계 방향으로 적용
- 개수별 적용:
- 1개: [상우하좌] 전체 동일
- 2개: [상하] [좌우]
- 3개: [상] [좌우] [하]
- 4개: [상] [우] [하] [좌]
🛠️ 실습 코드 주요 로직
✅ 로또 번호 생성 (중복 제거)
- 핵심: Math.random()으로 번호 추출 후, 이전에 저장된 값들과 비교하여 중복 시 인덱스(i)를 줄여 재추출 유도
✅ 공백 문자 기준 문자열 분리
- split("\\s+"): 연속된 모든 공백(스페이스, 탭 등)을 하나의 구분자로 인식하여 깔끔하게 단어 분리