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

Day 7 (10/28) - Java 정렬 알고리즘 및 CSS 심화

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

☕ Java 알고리즘 및 클래스 기초

1. 랜덤 데이터 처리 및 정렬

  • 주요 실습: 랜덤값 10개 추출 후 최소값, 최대값, 합계, 평균 산출 및 정렬
  • 배열 정렬 메서드: java.util.Arrays.sort(배열명) 활용
  • 알고리즘 구조:
    • 버블 정렬(Bubble Sort): 인접한 두 원소를 비교하며 큰 값을 뒤로 보내는 방식
    • 삽입 정렬(Insertion Sort): 정렬된 부분에 새로운 원소를 적절한 위치에 삽입하는 방식

2. 클래스(Class)의 이해

  • 정의: 객체를 만들기 위한 설계도
  • 구성 요소:
    • 필드(Field): 객체의 상태 정보를 저장하는 변수 (멤버 변수)
    • 메서드(Method): 객체의 동작을 정의하는 함수 (멤버 함수)
    • 생성자(Constructor): 객체 생성 시 초기화를 담당 (클래스명과 동일)
  • 객체(Object/Instance): 설계도(클래스)를 바탕으로 메모리에 실제 생성된 결과물
구분 클래스 (Class) 객체 (Instance)
개념 설계도, 틀, 추상적 실체, 제품, 구체적
위치 코드 영역 힙(Heap) 메모리 영역
특징 필드와 메서드 정의 각 객체마다 독립적인 상태 유지

🎨 CSS 박스 모델 및 선택자 활용

1. CSS 박스 모델 (Box Model)

  • Content: 실제 내용(텍스트, 이미지)이 표시되는 영역
  • Padding: 콘텐츠와 테두리(Border) 사이의 내부 여백
  • Border: 요소의 테두리 선
  • Margin: 요소와 외부 요소 사이의 간격 (투명 영역)

2. 스타일 적용 방식 및 우선순위

  • 방식: 외부 파일(.css) > 내부 스타일(<style>) > 인라인 스타일(style="")
  • 선택자 점수: 인라인(1000) > ID(100) > Class/가상 클래스(10) > Tag(1)

3. 사용자 동작 가상 클래스 (Pseudo-classes)

  • 순서 필수: :link > :visited > :hover > :active
  • 주요 속성:
    • :hover: 마우스 커서를 올렸을 때 (opacity, transition 등 활용)
    • :focus: 입력 폼 등에 커서가 위치했을 때
    • transition: 스타일 변경 시 애니메이션 효과 부여 (ease-in-out 등)

🛠️ 실습 메모 및 팁

✅ Java 꿀팁

  • Arrays.toString(배열): 배열의 내용을 [1, 2, 3] 형태로 한눈에 출력할 때 유용
  • void 키워드: 메서드가 값을 반환하지 않을 때 사용 (반환값이 있다면 데이터 타입 명시 후 return 필수)
  • 중복 없는 난수: 배열에 값을 넣을 때마다 이전 값들과 비교하여 중복 시 인덱스를 감소(i--)시켜 재추출

✅ CSS 꿀팁

  • border: 0 vs none:
    • 0은 테두리 두께를 없애는 것, none은 테두리 스타일 자체를 제거하는 것 (결과는 비슷하나 원리가 다름)
  • cursor 속성: pointer(손가락), move(십자 화살표), zoom-in 등 사용자 경험 향상에 활용
  • overflow: hidden: 박스 크기를 벗어나는 자식 요소를 숨길 때 사용