본문 바로가기

SpringBoot11

[ SpringBoot ] MyBatis 동적 쿼리 MyBatis 동적 쿼리 문법 정리- 조건문 (if / choose / when / otherwise) - 조건 특화 엘리먼트 (요소 == 태그) (trim / where / set) - 반복문 (foreach) - 다중 쿼리 (selectKey) 동적 SQL 란 ?MyBatis의 강력한 기능중 하나는 동적 SQL 를 처리하는 방법 이다. 동적 SQL 이란 상황에 따라 다양한 분기 처리를 통해 SQL문을 동적으로 만드는 것 이다. 조건문 (if / choose / when / otherwise) 단일 조건 : 조건이 참일 때 추가될 문장 다중 조건 : , , 조건 1이 참일 때 추가될 문장 조건 1이 거짓이고, 조건 2가 참일 때 추가될 문장 조건 1, 조건 2가 모두 거짓일 때 실행할 문장 조건 특화 .. 2023. 9. 25.
[ SpringBoot ] MyBatis 프레임워크 MyBatis 프레임워크란 ? 데이터베이스와 상호작용하며, 쿼리문을 쉽게 작성하고 실행할 수 있도록 도와주는 프레임워크 이다. MyBatis는 데이터베이스와 자바 객체 간의 매핑을 간단하게 처리 할 수 있도록 도와 준다. MyBatis 프레임워크의 장점 .xml 파일로 쿼리문 관련 설정 및 작성을 하기 때문에, 결합도가 낮아지고, 응집도가 높아지며, 유지 보수가 용이한 프로그래밍 개발을 지향 하게 된다. 왜 ? .xml 파일을 사용 한다는 의미는 JAVA 언어와의 분리를 의미 한다. 따라서, JAVA와 관련성이 없어짐에 따라, 쿼리문을 수정하더라도 컴파일을 다시 할 필요가 없다. MyBatis 설정 하기 1. Spring Starter Project 클릭. 2. 설정 하고, Next 클릭. 3. MyBa.. 2023. 9. 25.
[ Spring Boot ] 서비스 레이어와 인터페이스의 장점 참고 : https://hwanii96.tistory.com/329 > 코드의 유지보수가 용이해지는 장점을 갖게 된다. 인터페이스 생성 및 인터페이스를 구현 하기 BoardDAO 클래스는 CRUD == 비즈니스 메서드 가 작성 되어 있는 클래스 이다. 따라서, 메서드 시그니쳐가 정해져 있으므로 인터페이스를 작성해 보려고 한다. 인터페이스를 생성 했으니, 인터페이스를 구현하는 클래스를 작성 해보자. InterfaceBoardDAO 인터페이스를 구현 하고, @Repository 어노테이션을 명시하면 된다. 다음으로, BoardDAO 를 사용하는 주체가 되는 Service 클래스를 작성 해보자. 마찬가지로, 사용하는 비즈니스 메서드의 메서드 시그니쳐가 고정 되어 있기 때문에 인터페이스를 먼저 작성 한다. 그리.. 2023. 9. 21.
[ Spring Boot ] JDBC 연결 1. 개요 Spring 에서 JdbcTemplate 를 사용 했었다. 반복되는 로직에 사용 되는 템플릿 패턴을 사용한 개념 이였는데, Spring Boot 에서 JDBC 연결을 위한 설정 방법을 정리. 참고 : https://hwanii96.tistory.com/337 Spring JDBC 0. 그동안, Model 에서 DB와의 연결을 위해, JDBC 인터페이스를 구현 했었다. 기존 JDBC 코드 작업시, 로직이 반복 되거나, 유사함을 느꼈고, 이에 따라서, "반복되는 코드를 줄일 수 없을까 ?" 라는 생 hwanii96.tistory.com 2. Spring Boot 에서 JDBC 설정 하기 1) 먼저 Spring Starter Project 를 클릭. 2) 필요한 설정들을 진행 하고, Next 를 클.. 2023. 9. 19.
[ Spring Boot ] 데이터 유효성 검사 [ 데이터 유효성 검사 ] 1. 데이터 유효성 검사는 프론트와 백엔드 양쪽에서 각각 잡아 줘야 한다. 1) 클라이언트 == 웹 브라우저 == 프론트 == 사용자 >> HTML, JSP 페이지 에서 Javascript 를 통해 사용자의 입력값을 검사 하기. 보통 프론트에서 데이터 유효성을 검사하는 이유는 아래와 같다. 네트워크 == 트래픽 낭비를 방지 하기 때문 이다. 즉, 서버의 부하가 적어 지기 때문에, 프론트에서 데이터 유효성을 검사 해야 한다. 만약, 클라이언트가 어떤 버튼을 눌러서 서버로 요청을 보내는순간 네트워크를 사용 하게 된다. 하지만, 프론트에서 데이터 유효성을 검사하는것은 만능이 아니다. 왜냐하면 상단 URL에 직접적으로 요청값을 작성하는 경우라면, 즉, 잘못된 URL 호출에 대해서 추가.. 2023. 9. 15.
[ Spring Boot ] C - V 간의 다양한 방법으로 데이터 주고 받기 1. HttpServletRequest 객체를 사용하는 방법. >> 활용도가 낮다 == 구식의 방법 이다. why ? request 객체 자체가 Not POJO인 Servlet 의 객체 이기 때문의 경량이지 않다. test01() 메서드 @RequestMapping(value = "/test01") public String test01(HttpServletRequest request, Model model) {//request 객체 사용 방식. //request 자체가 Not POJO인 Servlet 객체 이기 때문에, 활용도가 낮다 (구식 이다) System.out.println("request : " + request); VO vo = new VO(); System.out.println("vo : ".. 2023. 9. 14.
[ Spring Boot ] 컨테이너, 참조변수, 지역변수 메모 자바에서 파라미터로 사용하는 변수를 보통 "지역 변수" 라고 한다. 지역 변수의 특징으로는, 해당 지역에서만 유효 하다는 것이다. 예를들어, 함수 내부에서 지역 변수를 할당 및 초기화 하면 내부에서만 사용 되고, 일반적인 "지역 변수" 는 (특히 원시 타입) 함수 종료시 소멸 된다. 스프링 프레임워크를 사용 할 때, MVC 패턴 기준으로 보면, Controller 에서 View 페이지를 ViewResolver 가 읽을 수 있도록 생성한 메서드가 있다고 해보자. 그러면 이 메서드의 기능은 값을 주고받고, 경로값을 문자열로 보내줄 것이다. 그러면 어? 메서드 (함수) 가 종료됬네 ? 그러면 이 안에서 사용된 "지역 변수" 의 값은 소멸될것이고, 만약에 그 값이 View 에서 사용 되어야 하는 경우에는 mod.. 2023. 9. 14.
[ Spring Boot ] Lombok (롬복) 설치 및 설정 + 프로젝트 기본 설정 Lombok == 롬복 이란 ? 자바 클래스 VO의 getter, setter, toString(), equals(), .. 등의 메서드를 자동으로 생성해준다. 즉, 자바 클래스의 멤버변수만 직접 생성 하면, 나머지는 모두 자동으로 생성 한다. 편리하고, 코드의 가독성이 좋아진다는 장점이 있다. 1. https://projectlombok.org/download Download projectlombok.org 위의 경로에서 롬복을 다운 받는다. 23.09.14 기준 최신 버전은 Download 1.18.28 이다. 2. 다운을 받으면, 아래와 같은 아이콘을 가진 파일이 다운 되어 있다. 3. 롬복의 위치를 이동 시켜 준다. 압축을 해제하고, IDE 경로를 잡아줘야 한다. IDE 경로를 잡고 업데이트 및 .. 2023. 9. 14.
[ Spring Boot ] 정적 리소스 사용 방법 정적 리소스는 컴파일을 안하기 때문에 바로바로 보여줄 수가 있다. 단순 광고, 또는 다른 페이지로 들어가기 위한 표지 페이지 등에서 사용 될 수 있다. 1. https://hwanii96.tistory.com/395 [ Spring Boot ] 스프링 부트 개념 및 설치, 초기 설정 방법 1. 스프링 부트 ? 자바 기반의 웹 애플리케이션 개발을 간편 하게 만들어주는 오픈 소스 프레임 워크 이다. 스프링 프레임워크를 기반으로 한다. 2. 스프링 부트의 특성 ? 1) 웹 서버 (톰캣) 가 기본 hwanii96.tistory.com 위의 링크의 5번 내용을 보면, 정적 리소스에 대한 간략한 개념을 확인 할 수 있다. 정적 리소스는 HTML, CSS, JS, 파일 (이미지, 텍스트, ..) , .. 등을 가리킨.. 2023. 9. 14.