전체 글 139

Java에서의 SQL 데이터 처리: Statement, PreparedStatement ,ResultSet

Statement와 PreparedStatement 비교  Statement와 PreparedStatement 클래스는 Java 애플리케이션에서 데이터베이스에 접근하여 SQL 쿼리를 작성하고 DB에 전달할 때 쓰는 클래스들로 다른 특성을 가지고 있다. StatementSQL 쿼리에서 변수를 직접 문자열로 결합하여 사용String sql = "insert into student values(" + sno + ", '" + name + "', ...);";st.executeUpdate(sql);SQL 인젝션 공격에 취약하며, 매번 새롭게 SQL 구문을 컴파일하므로 성능이 떨어질 수 있다.문자열 결합형식을 취하기 때문에 동적 쿼리 사용시 작성의 불편함이 있다.  PreparedStatement ?로 표기하는 ..

Developer/JAVA 2024.10.30

JAVA , JAVA와 데이터베이스 연동을 통한 데이터 처리

Frontend 와 Backend 간의 데이터 전송프론트앤드에서 사용자가 입력한 데이터를 서버로 전송하고 최종적으로 해당 데이터를 SQL문을 통해 데이터베이스에 저장이과정에서 JAVA 는 SQL 문을 통해 DB와 상호 작용하는 중간 역할을 수행한다.Java 와 DB 연결을 위한 JDBC 사용JDBC(Java Database Connectivity)java 애플리 캐이션이 다양한 데이터베이스에 연결될 수 있도록 해주는 API자바 운영체제에 JVM이 있던것 처럼,DB에 관해서도 각 DBMS 마다 존재하게 된다 ➡️JDBC Driver APIJDBC Driver각 DB 회사마다 드라이버를 제공하고 있다.mySQL은 커넥터를 이용하여 JDBC 드라이버 API를 사용한다.드라이버들도 공통된 규칙이 정해져 있고 ,..

Developer/JAVA 2024.10.30

Spring , Spring과 SpringBoot의 차이

프레임 워크 개념의 차이Spring애플리케이션 개발을 위한 전반적인 기능과 설정을 제공하는 프레임 워크핵심개념으로는 IoC , AOP 등이 있으며 , 주로 MVC 구조 기반의 웹 애플리케이션 개발할 때 사용한다.Spring 만으로는 설정이 복잡할 수 있어 초기 설정에 많은 시간이 소요될 수 있다.➡️스프링에 대해 다시보기 Spring , 스프링 프레임 워크란 ?스프링 프레임 워크의 특징을 한줄로 서술한다면," IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크"   경량크기 측면에서 가볍다.스프링은 여러개의 모듈로 구성되어 있으며 , 각 모듈은 하radaonmommy.tistory.com ➡️스프링 컨테이너에 대해 다시보기 Spring , FactoryBean . 스프링 컨테이너스프링이란 ?앞서 보고..

Spring , 스프링 프레임 워크란 ?

스프링 프레임 워크의 특징을 한줄로 서술한다면," IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크"   경량크기 측면에서 가볍다.스프링은 여러개의 모듈로 구성되어 있으며 , 각 모듈은 하나 이상의 jar 파일로 구성되어 있다.몇개의 jar 파일만 있으면 개발과 실행이 모두 가능하고 ,스프링을 이용하여 만든 애플리케이션 배포 역시 매우 빠르고 쉽다.  제어의 역행 (Inversion of Control) , IoC비즈니스 컴포넌트를 개발할 때 , 항상 신경 쓰는 것이 바로 낮은 결합도와 높은 응집도 이다.스프링은 제어의 역행을 통해 느슨한 결합 을 유지한다.객체 지향프로그래밍에서 객체가 다른 객체를 생성하고 ,그 객체를 통해 필요한 기능을 수행하는 경식으로 의존관계를 유지하는데 ,이러한 문제를 해결..

SpringBoot-MyBatis, 동적 쿼리 생성을 위한 XML 태그 끝내기 !

MyBatis의 XML 태그 MyBatis에서는 동적 SQL을 작성하기 위해 다양한 xml 태그를 제공한다.조건문 또는 반복문 또는 여러 SQL문을 유연하게 구성할 수 있도록 도와준다.각 태그에 대해 알아보자. 앞선 MyBatis 환경설정 및 xml구성 , springBoot 구조이해생성후 xml 파일의 구성1. 태그는 쿼리를 정의하는 태그다.2.namespace와 인터페이스 패키지 이름과 정확하게 일치해야한다.3.속성_ id : 사용할 메서드 명 4.속성_ resultType : 리턴타입에 대한 명시. 위치를 src/main/java 이후의 경로를 명시한다.   5.select 태그 경우 리턴타입을 명시한다.6.insert,update,delete 태그는 리턴타입을 명시하지 않아도 되며 , 리턴이 in..

SpringBoot-MyBatis 데이터베이스를 연동하기 위한 설정 및 구조

pom.xml Spring Boot에서 MyBatis와 MySQL 데이터베이스를 사용하려면 pom.xml에 관련 의존성을 추가한다. org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java 8.0.28 org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1  application.properties 설정  Spring Boot 애플리케이션이 MySQL 데이터베이스와 연동될 수 있도록 DB 연결 정보를 추가.MyBatis가 SQL 매퍼 파일을 올바르게 읽도록 매퍼 경로를 설정.# 데이터베이스 연결 설정spring.datasource.ur..

Spring , 영속 계층의 프레임 워크, myBatis와 JPA차이 , OMR이란

이미지로 보는 Persistence Layer영속 계층 (Persistence Layer)과 그 프레임워크는 현대 애플리케이션 개발에서 데이터베이스와의 상호작용을 효율적이고, 일관성 있게 처리할 수 있도록 도와주는 중요한 역할을 한다.DAO의 역할 DAO는 데이터 베이스와 직접적인 통신을 담당하는 객체로, 각 데이터 테이블과 연동되는 SQL 문을 작성하고 ,이를 통해 CRUD 작업을 수행한다.일반적으로 테이블 별로 유사한 구조의 메서드가 필요하고 SQL 문만 달라지기 때문에 ,이 작업을 자동화 하려는 요구가 생겨났다.이에 따라 영속계층의 프레임 워크가 발전하게 되었다.  영속계층과 영속 계층의 프레임 워크 영속 계층 (Persistence Layer) 데이터 베이스와 같은 영구 저장소의 데이터를 저장하거..

JAVA , 인터페이스 , 인터페이스와 추상클래스의 차이

인터페이스란 ? 추상클래스의 추상메서드를 활용하는 것과 같이더 강력하게 추상만 넣어두어 규칙만 명시한것이라고 볼 수있다.클래스와 클래스를 연결하는 기법이고,서로 상속관계가 아닌 클래스들을 연관성 있게 다형성을 활용하여 체계성을 만들고 싶을때 사용한다.추상 메서드와 상수(리터럴 의무!) 만 올 수있다. interface의 특징1. 완전한 추상화 : 인터페이스는 기본적으로 모든 메서드가 추상 메서드이며 , 구현을 가질 수 없다.(Java 8 이후부터는 디폴트 메서드와 정적 메서드에 한해 구현을 가질 수 있다. 아래의 메서드 사용법 있음.)2. 상태없음 : 인스턴스 변수를 가질 수없다(단 , 상수는 가질 수 있다.)3. 다중 상속 지원 : 하나 이상의 인터페이스를 구현 할 수 있다.4. 구현 : 클래스가 인터..

Developer/JAVA 2024.10.28

Spring , passwordEncoder

PasswordEncoder의 주요 개념과 기능 비밀번호 인코딩비밀번호를 데이터베이스에 직접 저장하지않고 , 해시(Hash) 알고리즘을 통해 변환한 값을 저장하는 방식.PasswordEncoder는 이를 위해 encode() 메서드를 제공encode(): 평문 비밀번호를 해싱하여 변환String rawPassword = "myPassword123";String encodedPassword = passwordEncoder.encode(rawPassword); 비밀번호 매칭로그인 시 입력한 비밀번호가 저장된 해시 값과 일치하는지 검증하기 위해 matches() 메서드를 사용matches(): 입력한 비밀번호와 저장된 해시 값의 일치 여부를 확인비밀번호가 일치하면 true, 그렇지 않으면 false를 반환bo..

Spring , service 의 구현

지난번에 service를 나누는 이유에 대한 글을 포스팅하였다.이번에는 service의 구현 클래스에 대해 조금더 이야기를 나눠보자. 인터페이스로 service를 만들어 service를 구현한 클래스를 통해 @service를 사용하였다.이 service 클래스는 ,요청클래스(Contorller)와 DAO클래스(Model)사이의 연결 사이에서 완충 지대 역할을 지닌다.즉 ,Contorller와 Model 사이에 변경사항이 생기더라도 서로 영향을 받지 않도록 해주는 역할결합도는 낮추고 응집도는 높이도록 한다. service interfacepublic interface MemberService { // ** selectList List selectList(); // ** selectOne MemberDTO ..

728x90