목차

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

    [TIL] Day 09 — Java 생성자/오버라이딩/다형성, CSS float 원리

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

    [TIL] Day 09 — Java 생성자/오버라이딩/다형성, CSS float 원리

    날짜: 2025-10-30
    기술 스택: Java OOP 오버라이딩 다형성 CSS float
    부트캠프: 풀스택 개발자 부트캠프 2주차


    오버로딩 vs 오버라이딩

    구분 오버로딩(Overloading) 오버라이딩(Overriding)
    정의 같은 이름, 다른 매개변수 부모 메서드를 자식이 재정의
    관계 같은 클래스 내 상속 관계에서
    반환형 매개변수가 다를 때만 다를 수 있음 (반환형만으로는 구별 불가) 같아야 함
    언제 결정 컴파일 시 (static binding) 실행 시 (dynamic binding)
    // 오버로딩
    class MathUtil {
        int add(int a, int b)          { return a + b; }
        double add(double a, double b) { return a + b; } // 매개변수 타입 다름
    }
    
    // 오버라이딩
    class Animal {
        void sound() { System.out.println("소리"); }
    }
    class Dog extends Animal {
        @Override
        void sound() { System.out.println("멍멍"); } // 재정의
    }

    생성자 심화

    class Person {
        String name;
        int age;
    
        // this() — 다른 생성자 호출 (첫 줄에 위치해야 함)
        Person() {
            this("Unknown", 0);
        }
        Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }

    가변인자 (Varargs)

    void printAll(String... args) { // 매개변수 마지막에만 선언 가능
        for (String s : args) {
            System.out.println(s);
        }
    }
    printAll("a");
    printAll("a", "b", "c"); // 개수 자유

    printf 서식 문자

    double pi = 3.14159;
    System.out.printf("%f%n", pi);      // 3.141590 (기본 6자리)
    System.out.printf("%.2f%n", pi);    // 3.14 (소수 2자리)
    System.out.printf("%d %s%n", 42, "hello");

    HTML 시맨틱 태그

    <header>  로고/제목/네비게이션  </header>
    <nav>     네비게이션 링크       </nav>
    <main>    주요 콘텐츠           </main>
    <section> 주제별 문단           </section>
    <article> 독립적 콘텐츠 단위    </article>
    <aside>   사이드바              </aside>
    <footer>  푸터 정보             </footer>

    CSS float vs margin: 0 auto

    /* float — 텍스트가 이미지 주위를 감싸는 레이아웃 등 */
    .img { float: left; }
    
    /* margin: 0 auto — 블록 요소 가로 중앙 정렬 */
    .container { width: 800px; margin: 0 auto; }
    • float는 요소를 문서 흐름에서 분리 → margin: 0 auto와 동시 사용 불가
    • 중앙 정렬이 필요하면 float 대신 flexbox 또는 grid 사용

    트러블슈팅

    this() 위치 오류

    • this()는 생성자 첫 줄에만 사용 가능. 둘째 줄 이후로 사용 시 컴파일 오류

    float clearfix

    .clearfix::after {
        content: "";
        display: block;
        clear: both;
    }
    • float 요소가 있을 때 부모의 높이가 무너지는 문제 → clearfix로 해결

    더 알아볼 것

    • 재귀호출(Recursion) 실습: 팩토리얼, 피보나치, 하노이 탑
    • CSS flexbox로 float 대체 레이아웃 구현
    • 시맨틱 태그 vs div 태그 SEO 차이
    • @Override 애노테이션 필요성 이유
    • 다형성(Polymorphism)이 실무에서 사용되는 사례