Developer 134

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 ..

Spring , log message

로깅 레벨의 의미 및 설정 로깅 레벨은 애플리케이션의 실행 상황을 다각도로 파악할 수 있도록 도와주는 각기 다른 중요도를 가진 로그 메세지이다기본설정은 info 레벨이며 , 필요시 debug , trace 레벨로 조정이 가능하다조정 : application.properties 에서 설정  - logging levelTRACE : DEBUG 보다 더 상세한정보를 표시한다.DEBUG : 내부 실행 상황을 추적하기 위한 정보 (MyBatis SQL log 확인가능.)INFO : 주요 실행정보 , 상태 변경 사항 등을 표시한다.WARN : 잠재적인 위험을 알리는 경고성 메세지ERROR : 오류 발생헀으나 애플리케이션이 계속 실행 가능한 상황FATAL : 애플리케이션 주지를 요구하는 심각한 에러 발생  logge..

Spring , 기본 mvc 패턴 제작형식 , 주요 애노테이션

패키지 구조com.example.demo01.controller → Controllercom.example.demo01.service →Servicecom.example.demo01.domain → DTOcom.example.demo01.model → DAOmain 메서드의 @SpringBootApplication @SpringBootApplicationpublic class Demo01Application { public static void main(String[] args) { SpringApplication.run(Demo01Application.class, args); }}➡️ 해당 클래스가 Springboot의 설정 클래스임을 명시하며 해당 클래스를 메인으로 실행됨해당 클래스가 있는 Pack..

spring , service를 나누는 이유

Service를 인터 페이스와 구현 클래스로 나누는 이유 Service 클래스를 인터페이스로 만들어서 구현하는 방식은 스프링에서 자주 사용되는 디자인 패턴이다.이렇게 하면 확장성과 유지보수성이 크게 향상된다.여기서 중요한 개념은 느슨한 결합과 높은 응집도인데, 인터페이스를 사용하면 각 클래스들이 서로 강하게 결합되지 않고, 기능이 변경되더라도 서로 영향을 덜 받게 된다.  인터페이스로 Service 작성:인터페이스는 클래스들이 따라야 할 규칙을 정의한다.이를 통해 여러 구현체가 동일한 메서드를 사용할 수 있게 되고, 이후 필요에 따라 구현체만 변경하면 된다.인터페이스는 구체적인 비즈니스 로직을 포함하지 않고, 어떤 작업을 수행해야 하는지 정의만 제공한다.Service 구현 클래스 작성:인터페이스를 구현하..

Spring, 스프링의 MVC

MVC 모델 스프링의 MVC (Model-View-Controllor) 모델은 웹 어플리 케이션 개발에서 가장 많이 사용되는 구조중 하나MVC 패턴은 애플리 케이션 비즈니스 로직 , UI , 그리고 이들 간의 상호작용을 분리하는데 중점을 둔다.이 구조를 사용하면 코드의 유지보수와 확장성이 좋아진다. MVC 모델의 흐름 사용자 요청: 사용자가 웹 브라우저를 통해 특정 URL을 요청하면, 요청은 DispatcherServlet으로 전달.Controller: DispatcherServlet은 해당 요청을 처리할 컨트롤러를 찾아서 매핑하고, 컨트롤러가 비즈니스 로직을 처리한다. 필요한 경우 모델 데이터를 준비하고, 이를 뷰에 전달할 준비를 한다.Model: 비즈니스 로직에서 처리된 데이터를 모델 객체로 담아 컨..

Spring , java_config 방식을 활용한 스프링 빈 설정 관리, xml과 혼용 관리

Factory 패턴  다시보는 Factory 패턴에 대하여..소스 코드 수정 없이 실시간으로 교체 작업이 필요하게 되었다.객체를 생성해서 교체해줄 역할자가 필요하다. 요구 사항에 따라 클래스를 Factory에게 전달하는 방법이 3가지가 있다. 1. xml 방식2. @ 방식3. JavaConfig(Java_code)지금 보는 방식은 3번에 해당한다. 자바 클래스를 활용한 스프링 빈 설정 이때 가장 중요한 애노테이션이 두가지가 있는데 , @Configuration과 @Bean이다.  [✔️1. @Configuration ]@Configuration은 해당 클래스가 스프링 설정 파일로 사용됨 을 의미이 클래스는 설정 파일 역할을 하므로, XML 설정 파일 없이도 자바 코드에서 직접 빈을 등록  -사용시 주의사..

728x90