JDBC, Hikari & Mybatis
·
Backend/JAVA
이전 글: 2025.05.21 - [Backend/JAVA] - JDBC JDBCJDBC (Java Database Connectivity)자바에서 DB에 접근하기 위한 표준 API즉, 자바 애플리케이션이 DBMS 종류와 상관 없이 동일하게 사용할 수 있는 클래스와 인터페이스로 구성JDBC API (java.sql 패키지에 포함)0woy.tistory.comJDBC 요약JDBC(Java Database Connectivity)는 애플리케이션이 다양한 RDB와 통신할 수 있도록 하는 `JAVA API`DB에 접속하고, SQL 쿼리를 실행하며, 결과를 가져오는 등의 작업을 수행하기 위한 표준 인터페이스를 제공주요 역할드라이버 로딩: 특정 DB 벤더가 제공하는 JDBC 드라이버 로드 (예: MySQL JDBC..
MVC, 포워딩과 리다이렉트
·
Backend/JAVA
MVC 패턴`Model`, `View`, `Controller`의 약자로, 웹 애플리케이션을 모델, 뷰, 컨트롤러로 나누어 개발하는 디자인 패턴👉 SOLID 원칙 중 단일 책임 원칙을 지킴MVC 패턴은 다시 Model1과 Model2 아키텍처로 나뉨Model2 는 Model1의 문제점을 해결하기 위해 등장Model1 아키텍처1. 모델 (Model)일반적으로 모델을 Service 클래스와 DAO 클래스로 구성`DAO`는 DB연동을 담당하는 클래스이며, `Service` 클래스는 DAO를 이용하여 비즈니스로직을 처리하는 클래스임즉, Service 클래스에서 DAO를 처리2. 뷰 (View)화면 정보에 해당하는 뷰는 일반적으로 HTML이나 CSS이용하여 구성MVC 아키텍처에서 가장 중요한 요소가 바로 JS..
JDBC 프로젝트 생성
·
Backend/JAVA
JDBC 프로젝트 1. 프로젝트 생성 & build.gradleJDBC & Lombok 라이브러리 추가 코드// MySQL JDBC 드라이버 추가implementation 'com.mysql:mysql-connector-j:8.4.0' // lombok 추가compileOnly 'org.projectlombok:lombok:1.18.38'annotationProcessor'org.projectlombok:lombok:1.18.38'testCompileOnly 'org.projectlombok:lombok:1.18.38'testAnnotationProcessor 'org.projectlombok:lombok:1.18.38'2. Intellij Datasource 기능 설정3. SQL 파일 생성`jdb..
JDBC
·
Backend/JAVA
JDBC (Java Database Connectivity)자바에서 DB에 접근하기 위한 표준 API즉, 자바 애플리케이션이 DBMS 종류와 상관 없이 동일하게 사용할 수 있는 클래스와 인터페이스로 구성JDBC API (java.sql 패키지에 포함)자바 프로그램에서 DB와 연결하고 SQL문을 실행하며, 결과를 처리할 수 있도록 돕는 표준 라이브러리JDBC 드라이버특정 DB에 맞는 구현체예) MySQL 용 JDBC 드라이버 = mysql-connector-j👉 DB가 바뀌더라도, 구현체만 바꾸면 애플리케이션에서 수정 사항을 최소화 할 수 있음JDBC의 핵심 인터페이스 / 클래스DriverManager: JDBC 드라이버 로드, DB 연결 관리Connection: DB와의 연결을 나타냄Statement:..
컬렉션 프레임워크
·
Backend/JAVA
자바는 널리 알려진 자료구조를 바탕으로, 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련된 인터페이스와 클래스들을 `java.util` 패키지에 포함시켜 놓음👉 이를 총칭하여 컬렉션 프레임워크라고 부름List와 Set은 객체를 추가, 삭제, 검색하는 방법에 있어서 공통점이 있기에 공통된 메소드만 따로 모아 Collection 인터페이스로 정의 & 상속Map은 키와 값을 하나의 쌍으로 묶어서 관리하는 구조로 List와 Set 과는 사용방법이 다름❓ 인터페이스로 구현한 이유처음에는 공유 코드가 없어서 인터페이스로 설계 했으나, 시간이 흐르며 공통 기능이 필요해졌고 이를 해결하기 위해 `default` 메서드가 도입 됨인터페이스 분류특징구현 클래스CollectionList순서를 유지하고 저장중복 저..
추상 클래스 & 봉인 클래스
·
Backend/JAVA
📘 추상사전적 의미의 추상(abstract)은 실체 간에 공통되는 특성을 추출한 것추상 클래스객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이런 클래스들의 공통적인 `필드`나 `메소드`를 추출해서 선언한 클래스를 추상 클래스라고 함예시 새, 곤충, 물고기는 동물이라는 공통적인 특성을 가짐실체 클래스 = 새, 곤충, 물고기추상 클래스 = 동물추상 클래스는 `new 연산자`를 사용하여 객체를 직접 생성할 수 없다.추상 클래스를 사용하는 이유 ❓1. 공통 기능을 묶어서 코드 중복 방지여러 자식 클래스에 공통된 필드나 메서드를 추상 클래스에 정의해서, 코드의 재사용성과 유지보수성을 높일 수 있음.abstract class Animal { String name; void breathe()..
상속 관계에서 타입 변환의 이유와 사용 목적
·
Backend/JAVA
📘 상속 관계에서 타입 변환이 중요한 이유 (업캐스팅과 다운캐스팅)객체지향 프로그래밍(OOP)을 공부하다 보면, "왜 굳이 자식 객체를 부모 타입으로 참조하지?"라는 질문이 들 수 있다.이번 글에서는 상속 관계에서 자주 사용되는 업캐스팅(upcasting) 과 다운캐스팅(downcasting) 의 개념과 실제 사용 사례를 정리한다.1. 업캐스팅이란?업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 참조하는 것을 의미합니다.Animal a = new Dog(); // 업캐스팅이렇게 하면 부모 클래스에 정의된 멤버만 접근할 수 있지만, 실제 객체는 자식 객체이기 때문에 오버라이딩된 메서드는 자식 클래스의 것이 실행됩니다.왜 업캐스팅을 쓸까?다형성(polymorphism) 구현의 핵심입니다.다양한 자식 ..