목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/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)이 실무에서 사용되는 사례