백엔드 88

JDBC 드라이버 다운로드 및 등록

MariaDB 드라이버 및 H2 드라이버 다운로드 - DB마다 JDBC 드라이버 다운로드해야함 ① 구글에 'maven repository' 검색 - MariaDB 드라이버 및 H2 드라이버 다운로드 ② lib 폴더 생성 - 붙여넣기 ③ [ Build Path ] - [ Add external JARs ] - [ Modulespath ]에 등록 ④ Package Explorer 창에서 [ Refresh ] - [ Referenced Libraries ] - 드라이버 등록 여부 반드시 확인하기 사진 DBConnection 클래스 package model.connect; import java.sql.Connection; import java.sql.DriverManager; import static model..

백엔드/JAVA 2023.05.23

H2 데이터베이스 연결 (2)

( 지난 수업에 이어서 ) CRUD 구현 ▷ 테이블 생성 및 데이터 추가 package db.model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class H2ConnectionDemoApp { // JDBC_DRIVER static final String JDBC_DRIVER = "org.h2.Driver"; // DB_URL static final String DB_URL = "jdbc:h2:/Users/dahee/Desktop/app/database/h2/java2/:Use..

백엔드/JAVA 2023.05.22

H2 데이터베이스 연결 (1)

JDBC를 사용한 H2 데이터베이스 연결 ▷ JDBC ( Java Database Connectivity ) - 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API ( Application Programming Interface ) ( API : 애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스를 의미 ) - JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공 - JDBC 표준 인터페이스 ❶ java.sql.Connection : 연결 ❷ java.sql.Statement : SQL을 담은 내용 ❸ java.sql.ResultSet : SQL 요청 응답 → 데이터베이스를 연결하여 테이블 형태의 자료를 참조 SQL문을 질의,..

백엔드/JAVA 2023.05.22

👉🏻 에러의 종류 및 에러 처리

에러의 종류 ① 실행 에러( 실행 시, 알고리즘이 잘못되어 나타나는 논리 에러 => 실행을 해야 에러 여부를 확인할 수 있음 : Runtime Error ) ② 컴파일 에러 두 수를 입력받아 나누기 연산 시, 0으로 나누게 되면 어떻게 될까? package myexception; import java.util.Scanner; public class DivideExceptionApp { public static void main(String[] args) { // 두 개의 숫자를 입력함 Scanner sc = new Scanner(System.in); System.out.print("첫번째 숫자를 입력해주세요 : "); int num1 = Integer.parseInt(sc.next()); System.o..

백엔드/JAVA 2023.05.18

객체 지향 프로그래밍 이론(6)

인터페이스 - 인터페이스 ( Interface ) : 객체의 사용방법을 정의한 것 · 일종의 추상클래스 · 추상클래스보다 추상화 정도가 높음 → 오직 추상메서드와 상수만을 멤버로 가질 수 있음 - 추상클래스와의 비교 · 추상클래스 : 부분적으로만 완성된 '미완성 설계도' · 인터페이스 : 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도' → 다른 클래스를 작성하는데 도움 줄 목적으로 작성 ▷ 인터페이스 선언 - class 대신 interface 키워드 사용 [ public ] interface 인터페이스이름 { // ① 상수 필드 public static final 타입 상수이름 = 값 ; → 생략 가능 ( 생략된 제어자는 컴파일 시, 컴파일러가 자동적으로 추가시킴 ) // ② 추상클래스 ..

백엔드/JAVA 2023.05.16

13일차 수업 기록

상속 ▶ 클래스 간의 관계 결정하기 - 클래스를 작성할 때, 두 클래스 간의 관계가 상속관계인지, 포함관계인지 헷갈릴 때가 있음 → 아래와 같이 문장을 만들어보면 어떤 관계인지 명확해짐 ① 상속 관계 : ' ~은 ~이다 ( is - a ) ' ② 포함 관계 : ' ~은 ~을 가지고 있다 ( has - a ) ' → 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 의미 - 예시 class Circle { int x; int y; int z; } class Point { int x; int y; } ❶ 상속 관계 class Circle extends Point { inr r; } ❷ 포함 관계 class Circle { Point p = new Point(); int r; } ❸ main..

백엔드/JAVA 2023.05.15

객체 지향 프로그래밍 이론(4)

상속 - 상속 · 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 → 코드의 추가 및 변경 용이함 ∴ 코드의 재사용성↑, 중복 제거 → 유지보수 쉬워짐 ☞ 첫번째 상속 예시 - 직접 2개의 클래스 ( ChildClass, ParentClass ) 생성해서 상속에 대해 알아보자 package inherit; public class ParentClass { // 멤버변수 선언 String name; // 기본생성자 ParentClass(){ this.name = "자바"; } // 속성함수 public String getName() { return name; } public void setName(String name) { this.name = name; } } ❶ S..

백엔드/JAVA 2023.05.12

MVC 패턴 개념

MVC ( Model - View -Controller ) 사용자 인터페이스로, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴 - Model : 데이터와 관련된 부분 → 백그라운드에서 동작하는 비즈니스 로직 ( 데이터 ) 처리 - View : 사용자한테 보여지는 UI부분 → 정보를 화면으로 보여주는 역할 - Controller : Model과 View의 중개자 역할 → 사용자의 입력 처리와 전반적인 프로그램 흐름 제어 ( 첫날 배웠던 개념에 이어서 ) - DAO ( Data Access Object ) : 데이터베이스의 data에 접근하기 위한 객체로, 데이터베이스에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용함 · 비즈니스 로직 ( Business Logic ) :..

백엔드/JAVA 2023.05.11

객체 지향 프로그래밍 이론(3) 및 주사위 게임 예제 실습

메소드 오버로딩 ( 어제 배운 내용에 이어서 ) - 메소드 오버로딩 ( overloading ) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 → 목적 ) 매개값을 다양하게 받아 처리하기 위함 · 조건 ① 메서드 이름이 같아야 함 ② 매개변수의 개수 또는 타입이 달라야 함 ③ 반환 타입은 관계없음 · 오버로딩된 메소드를 호출할 경우, JVM이 매개값의 타입을 보고 호출할 메서드 선택 JVM은 반환타입을 보고 메소드를 선택하지 않기 때문에 반환타입은 고려 사항이 아님 package extend_class; public class CheckReturnClass { public void add(int x, int y) { System.out.printf("\n%d + %d..

백엔드/JAVA 2023.05.09

접근제어자 및 객체 지향 프로그래밍 (2)

접근 제어자 - 접근 제어자의 목적 : 멤버 또는 클래스에 사용 → 해당 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할 - 접근 범위가 넓은 쪽에서 좁은 쪽의 순 : public > protected > (default) > private ① public : 접근 제한 없음 ② (default) : 같은 패키지 내에서만 접근 가능 → 접근 제어자가 지정되어 있지 않은 경우에 해당 ③ protected : 같은 패키지 내 또는 다른 패키지의 자손 클래스에서 접근 가능 ④ private : 같은 클래스 내에서만 접근 가능 캡슐화 ( encapsulation ) - 외부로부터 데이터를 보호하기 위해 멤버 변수의 값에 직접적으로 접근하지 않은 것이 보안상 좋음 - 데이터가 유효한 값을 유지하도록,..

백엔드/JAVA 2023.05.08