[내배캠/사전캠프] TIL - 19일차

euphony·2024년 12월 13일
0

내일배움캠프

목록 보기
15/66

✅오늘의 한 일

  • 자바 중급 1편 강의 듣기
  • SQL 강의 듣기
  • SQL 강의 블로그 정리

💻오늘의 학습

자바 강의

중첩클래스, 내부 클래스

중첩 클래스는 크게 정적 중첩 클래스, 내부 클래스 2가지로 분류할 수 있으며, 총 4가지가 있다.

  • 정적 중첩 클래스 : 정적 변수(클래스 변수, static 변수)와 같은 위치에 선언, static 키워드 사용
  • 내부 클래스
    • 내부 클래스 : 인스턴스 변수와 같은 위치에 선언, static 키워드 사용하지 않음, 바깥 클래스의 인스턴스 멤버에 접근
    • 지역 클래스 : 지역 변수와 같은 위치에 선언, 코드 블럭 안에서 클래스 정의, 내부 클래스의 특징 + 지역 변수에 접근
    • 익명 클래스 : 이름이 없는 클래스로, 지역 클래스의 특별한 버전
      class Outer {
         ...
         // 정적 중첩 클래스
         static class StaticNested {
            ...
         }

         // 내부 클래스
         class Inner {
            ...
         }
      }

✔️ 중첩(Nested)와 내부(Inner)의 단어 차이?

  • 중첩(Nested) : 어떤 다른 것이 애부에 위치하거나 포함되는 구조 관계. 내 것이 아님.
  • 내부(Inner) : 나의 내부에 있는 나를 구성하는 요소. 나와 긴밀한 관계임.

즉, 바깥 클래스 입장에서 볼 때 안에 있는 클래스가 나의 인스턴스에 소속된다면 내부 클래스, 소속되지 않는다면 정적 중첩 클래스로 분류할 수 있다.

✔️ 중첩 클래스는 언제 사용할까?

  • 모든 중첩 클래스는 특정 클래스가 다른 하나의 클래스 안에서만 사용되거나, 둘이 아주 긴밀하게 연결되어 있는 특별한 경우에만 사용해야 한다.

✔️ 중첩 클래스를 사용하는 이유

  • 논리적 그룹화 : 어떤 클래스 안에서만 사용되는 클래스라면 그 클래스 안에 위치시키는 것이 논리적으로 더 그룹화 된다.
  • 캡슐화 : 중첩 클래스는 바깥 클래스의 private 멤버에 접근이 가능해서 불필요한 public 메서드를 제거할 수 있다.

SQL 강의

스파르타 사전캠프 기간동안 제공하는 SQL 강의가 있긴 하지만, 원래 듣던 강의가 있으니 그걸 이어서 듣는게 나을 것 같아 한동안 미뤄두었던 유데미 SQL 강의를 들었다. 오늘은 새로운걸 배운다기보다는 기본적인 CRUD 예제를 쭉 푸는 시간을 가졌다.

  1. shirts_db 데이터 베이스를 생성하세요.
CREATE DATABASE shirts_db;
  1. shirts 테이블을 생성하세요.
CREATE TABLE shirts (
    shirt_id INT AUTO_INCREMENT PRIMARY KEY,
    article VARCHAR(50),
    color VARCHAR(20),
    shirt_size VARCHAR(20),
    last_worn INT
);

3 . shirt 데이블에 데이터를 넣으세요.

INSERT INTO shirts (article, color, shirt_size, last_worn)
VALUES
    ('t-shirt', 'white', 'S', 10),
    ('t-shirt', 'green', 'S', 200),
    ('polo shirt', 'black', 'M', 10),
    ('tank top', 'blue', 'S', 50),
    ('t-shirt', 'pink', 'S', 0),
    ('polo shirt', 'red', 'M', 5),
    ('tank top', 'white', 'S', 200),
    ('tank top', 'blue', 'M', 15);
  1. shirt 테이블에 새 셔츠를 추가하세요.
INSERT INTO  shirts(article, color, shirt_size, last_worn)
VALUES ('polo shirt', 'purple', 'M', 50);
  1. 모든 셔츠를 조회하세요. 단, article 컬럼과 color 컬럼만 나오도록 하세요.
SELECT article, color 
FROM shirts;
  1. 사이즈가 M인 셔츠를 모두 조회하세요. 단, shirt_id를 제외한 모든 컬럼이 나오도록 하세요.
SELECT article, color, shirt_size, last_worn 
FROM shirts 
WHERE shirt_size = 'M';
  1. 모든 polo shirts의 사이즈를 L로 바꾸세요.
UPDATE shirts 
SET shirt_size = 'L' 
WHERE article = 'polo shirt';
  1. 마지막으로 입은지 15일인 셔츠를 오늘 입었으므로 마지막으로 입은 기간을 0으로 바꾸세요.
UPDATE shirts SET last_worn = 0 
WHERE last_worn = 15;
  1. 모든 흰색 셔츠의 사이즈를 XS로, 색상을 'off white'로 바꾸세요.
UPDATE shirts 
SET shirt_size = 'XS', color = 'off white' 
WHERE color = 'white';
  1. 마지막으로 입은 지 200일이 된 오래된 셔츠를 삭제하세요.
DELETE FROM shirts 
WHERE last_worn = 200;
  1. 모든 탱크탑을 삭제하세요.
DELETE FROM shirts 
WHERE article = 'tank top';
  1. 모든 셔츠를 삭제하세요.
DELETE FROM shirts;
  1. shirts 테이블을 삭제하세요.
DROP TABLE shirts;

📝오늘의 회고

오늘은 나름 아침 운동도 다녀오고 하기로 한 일도 다해서 뿌듯하다. 벌써 사전캠프 4주차가 끝나고, 곧 5주차에 접어드는데 차근차근 공부시간을 늘려야겠다. 그리고 하루를 어떻게 하면 효율적으로 쓸 수 있을지 루틴과 계획을 짜봐야겠다. 2024년이 얼마 남지 않았는데 할 일이 많아서 머리가 어지럽지만 화이팅..!

📌내일의 할 일

  • 아침 운동 후, 플래너 작성
  • 자바 중급 1편 강의 듣기
  • SQL 강의 듣기
  • 자바 강의 블로그 정리

0개의 댓글

관련 채용 정보