241220 TIL
·
TIL
JDBC자바 프로그램내에서 SQL문을 실행하기 위한 자바 APIJAVA는 표준 인터페이스인 JDBC API를 제공데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버 (driver)를 제공java.sql패키지를 보면 대부분이 interface로 되어 있음이를 실제로 구현하는 것은 DBMS를 만든 회사JDBC 드라이버 설치-build.gradledependencies { implementation group: 'com.mysql', name: 'mysql-connector-j', version: '8.3.0'}maven,gradle이 없었으면 드라이버(라이브러리)를 하나 씩 찾아서 다운로드 해서 사용해야 함JDBC 사용import java.sql.*;//드라이버 로드 (예..
241219 TIL
·
TIL
SQL 쿼리Set Operator두 질의의 결과를 가지고 집합 연산UNION, UNION ALL, INTERSECT, MINUS 연산자  설명 중복 포함 여부UNION두 결과를 합치고 중복 제거❌ 중복 제거UNION ALL두 결과를 합치고 중복 포함✔ 중복 포함INTERSECT두 결과의 공통된 행만 반환N/AMINUS첫 번째 결과에서 두 번째 결과에 없는 행N/A-- 두개의 테이블 만든다 create table A (name int);create table B (name int);-- 값 추가 INSERT INTO A VALUES ('1');INSERT INTO A VALUES ('2');INSERT INTO A VALUES ('3');INSERT INTO B VALUES ('2');INSERT INTO..
241218 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
SQL 쿼리인덱스B-Tree(Balanced Tree) 또는 Hash(해시 테이블) 방식기본 키는 기본적으로 인덱스 생성값의 분포가 넓은 컬럼에 적합인덱스가 없다면 테이블의 모든 행을 살펴봐야함인덱스가 있으면 책의 목차처럼 원하는 데이터가 있는 위치를 빠르게 찾을 수 있음해시 인덱스: 해시 인덱스는 정확한 값을 찾을 때 빠르다. 예를 들어, "이름"이 "홍길동"인 사람을 찾을 때, 해시 인덱스는 이름을 해시 값으로 변환하여 정확한 위치를 바로 찾음.B-Tree 인덱스 (주로 사용되는 인덱스): 데이터를 정렬된 트리 형태로 저장. 예를 들어, 숫자나 날짜를 정렬해놓고, 그 정렬된 인덱스를 사용해서 데이터를 빠르게 찾을 수 있다.B-Tree에서 데이터를 찾을 때는 이진 검색(Binary Search) 방식처..
241217 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
SQL 쿼리사용자 생성CREATE USER 'id'@'%' IDENTIFIED BY 'password'; -- 외부 접속용CREATE USER 'id'@'localhost' IDENTIFIED BY 'password'; -- 로컬 접속용권한 부여GRANT ALL PRIVILEGES ON tablename.* TO 'id'@'%';GRANT ALL PRIVILEGES ON tablename.* TO 'id'@'localhost';-- * 모든 권한권한 적용FLUSH PRIVILEGES;사용자 존재 확인ELECT user, host FROM mysql.user WHERE user = 'id';사용자 삭제DROP USER 'id'@'%';DROP USER 'id'@'localhost'; -- 만약 localh..
241216 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
Scanner 객체 매개변수 메소드재사용성 : 동일한 Scanner 객체를 여러 매소드에서 재사용자원 관리: 하나의 Scanner 객체를 공유함으로써 불필요한 자원 사용을 줄임import java.util.Scanner;public class UserInputHandler { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); collectPersonalInfo(scanner); collectContactInfo(scanner); collectPreferences(scanner); scanner.close(); ..
241213 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
내부 클래스내부 클래스 (Inner Class)는 자바에서 클래스 내부에 또 다른 클래스 정의클래스의 멤버처럼 취급, 특별한 접근 권한멤버 내부 클래스클래스 안에 필드로 클래스 사용내부 클래스가 외부 클래스의 privite한 필드에 접근해서 사용할 수 있다(같은 필드이므로)public class Book { private String title; private Author author; // Book 생성자 public Book(String title) { this.title = title; this.author = new Author(); } // Author의 이름 설정 public void setAuthorName(String name)..
241211 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
인터페이스클래스가 구현해야 할 메서드의 형식을 정의클래스는 인터페이스를 구현(implement)함으로써 인터페이스에 명시된 메서드를 반드시 구현 해야함public static final 상수만 사용 가능(일반 변수 사용 못함)구현체가 없어야 함, Java 8 부터는 Default 메서드와 Static 메서드는 구현체를 포함 할 수 있음default 메서드인터페이스 내에서 구현 코드를 갖는 메서드default 키워드 사용모든 구현 클래스가 사용 가능한 기본 구현 제공필요하다면 구현 클래스에서 재정의(override) 가능기존 코드를 깨뜨리지 않고, 인터페이스에 새 메서드를 추가할 수 있게 함만약, 두 개의 인터페이스를 구현 하는 클래스가 동일한 이름과 시그니처를 가진 default 메서드를 상속 받게 되면..
241210 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school
·
TIL
Objecttostring()객체를 문자열로 표현하는데 사용자바에서 모든 클래스는 Object클래스를 상속 받음, Object클래스에는 기본적으로 toString()메서드가 포함되어 있음toString() 메서드를 오버라이딩 하여 객체에 맞게 변환객체의 이름만 출력해도 자동으로 toString()호출public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person[name=..
241209 TIL
·
TIL
생성자// 기본 생성자public ClassName() { // 초기화 코드}// 매개변수가 있는 생성자public ClassName(DataType parameter1, DataType parameter2, ...) { // 초기화 코드}// 복사 생성자, 기존 객체의 값을 복사하여 새로운 객체를 생성합니다.public ClassName(ClassName otherObject) { // 초기화 코드 (otherObject의 필드 복사) //this.name = otherObject.name; //this.age = otherObject.age;}// this()를 사용한 생성자 호출public ClassName() { this(parameter1, parameter2, ..
241206 TIL
·
TIL
메소드 선언 방법[접근제한자][static] 리턴type 메소드이름([매개변수,...]){ 실행문 ,,, }  static  static 키워드는 접근제한자 다음 적는다static은 인스턴트를 생성하지 않고 호출 할 수 있음static 메서드는 인스턴스 변수를 포함 할 수 없다 : static 메서드를 호출 할 당시에 인스턴트 변수가 메모리에 올라가지 않은 상태이기 때문에 에러남static 변수는 모든 인스턴트가 메모리를 공유함: 공통적인 성질은 static 변수로 설정(객체생성,유틸리티 관련)되도록 인스턴트 메모리 사용 필드 선언 방법[접근제한자] [static] [final] 타입 필드명 [=초기값];패키지package com.example.myapp;파일의 최상단에 package 키워드를 ..