목차

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

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

      ⏳ Time Log/TIL · 하루

      [TIL] Day 06 — Java 배열/참조타입 및 CSS 선택자

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

      [TIL] Day 06 — Java 배열/참조타입 및 CSS 선택자

      날짜: 2025-10-27
      기술 스택: Java Array CSS
      부트캠프: 풀스택 개발자 부트캠프 2주차


      데이터 타입 — 기본 vs 참조

      구분 타입 메모리 저장 초기값
      기본 타입 byte, short, int, long, float, double, char, boolean 스택 타입별 지정값
      참조 타입 배열, 클래스, 인터페이스, 열거형 힙(Heap) (주소만 스택) null

      핵심 키워드: 스택에 주소, 힙(Heap)에 실제 데이터


      배열 (Array)

      // 선언 및 생성
      int[] arr = new int;
      int[] arr2 = {1, 2, 3, 4, 5}; // 값 목록 생성
      
      // 접근
      arr = 10;
      System.out.println(arr.length); // 배열 길이 (읽기 전용)
      
      // 향상된 for문
      for (int n : arr2) {
          System.out.println(n);
      }

      배열 복사

      // System.arraycopy(원본, 원본시작, 대상, 대상시작, 길이)
      System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);

      String 주요 메서드

      String str = "Hello, Java!";
      str.charAt(0);          // 'H' — 특정 인덱스 문자 추출
      str.length();           // 12 — 문자열 길이
      str.replace("Java", "World"); // "Hello, World!" — 대체
      str.substring(7);       // "Java!" — 7번째부터 끝
      str.substring(7, 11);   // "Java" — 7부터 11 앞까지
      str.indexOf("Java");    // 7 — 위치 반환 (없으면 -1)
      str.trim();             // 앞뒤 공백 제거
      str.split(",");         // "," 기준으로 분리
      str.concat(" 화이팅");  // 문자열 합치기
      
      // 코딩 실용 팁 — 공백 기준 분리
      String[] words = str.trim().split("\\s+"); // 연속 공백도 한 번에 처리

      로또 번호 생성 예시 (1~45, 중복 제거)

      int[] lotto = new int;
      int i = 0;
      while (i < lotto.length) {
          int num = (int)(Math.random() * 45) + 1;
          boolean duplicate = false;
          for (int j = 0; j < i; j++) {
              if (lotto[j] == num) { duplicate = true; break; }
          }
          if (!duplicate) { lotto[i] = num; i++; }
      }
      java.util.Arrays.sort(lotto);

      CSS 선택자 정리

      선택자 대상 점수
      * 전체 0
      tag 태그 1
      .class 클래스 10
      #id ID 100
      inline style - 1000
      div > p   /* 직접 자식만 */
      div p     /* 모든 후손 */
      h1 + p    /* 바로 다음 형제 */
      h1 ~ p    /* 뒤에 오는 모든 형제 */
      div:nth-child(1) /* 첫 번째 자식 */

      CSS display 속성

      값 동작
      block 줄 전체 사용, 줄바꿈 O
      inline 내용만큼만, width/height 불가
      inline-block 나란히 + width/height 가능
      none 화면에서 완전 숨김
      flex 유연한 1차원 정렬
      grid 2차원 격자 레이아웃

      CSS margin 단축속성

      margin: 20px;             /* 사방 동일 */
      margin: 10px 20px;        /* 상하 / 좌우 */
      margin: 10px 20px 5px;    /* 위 / 좌우 / 아래 */
      margin: 10px 20px 5px 0;  /* 시계방향: 위 우 아래 좌 */

      더 알아볼 것

      • 열거형(enum) 선언과 활용 시나리오
      • Arrays.sort() vs Collections.sort() 차이
      • CSS Flexbox 주요 속성 (justify-content, align-items)
      • System.arraycopy vs Arrays.copyOf 비교
      • null 참조 시 NullPointerException 발생 및 대처 방법