⏳ Time Log/1. One Day (Daily · TIL)

Day 6 (10/27) - Java 클래스 활용

this.Serena 2026. 2. 18. 23:35

 

📝 오늘의 강의 요약

핵심 키워드: 반복문 제어, 참조 타입, 메모리 영역(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+"): 연속된 모든 공백(스페이스, 탭 등)을 하나의 구분자로 인식하여 깔끔하게 단어 분리