Bible, Lee, Data
Faith, software, data, and everyday life.
SpringAll posts
[Spring] MyBatis: 반환값과 매개변수에 따라 달라지는 쿼리
🌿쿼리 경우의 수1. 반환값(X), 매개변수(X)2. 반환값(X), 매개변수(O)3. 반환값(O), 매개변수(X)반환값: 단일값반환값: 레코드 1줄반환값: 레코드 N줄4. 반환값(O), 매개변수(O)반환값: 단일값반환값: 레코드 1줄반환값: 레코드 N줄 [Spring] MyBatis: Connection Pool (Commons DBCP, HikariCP)🌿MyBatis 영속성 계층 (데이터베이스 조작 계층) Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크이다. MyBatis는 Spring 기술이 아닌 독립적인 기술isaac-christian.tistory.com이전 MyBatis 글에서 이어진다. 🌿반환값(..
[Spring] MyBatis: Connection Pool (Commons DBCP, HikariCP)
🌿MyBatis영속성 계층 (데이터베이스 조작 계층)Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크이다.MyBatis는 Spring 기술이 아닌 독립적인 기술이지만, Spring에서 도입을 해서 사용할 수 있도록 연동되어 있다.MyBatis는 SQL을 별도의 파일을 분리해서 관리하게 하며, 응용프로그램과 데이터베이스를 연결하는 JDBC 같은 역할을 한다. 단, SQL을 그대로 사용할 수 있다는 점에서 JDBC을 사용할 때의 불편함을 해결했다. [JDBC] JDBC란? (Java Database Connectivity)🍁JDBC JDBC는 자바 프로그램과 데이터베이스(오라클)를 연결시켜 주는 자바 API(응용 프..
[Spring] 요청 메서드의 반환 자료형
요청 메서드의 반환 자료형은 String의 빈도가 가장 높고, 다음으로 3번의 redirect, 5번의 사용 빈도가 높다.요청과 응답은 어떤 업무든 연관이 되어 있기 때문에 이에 대한 정리가 필요하다. 🌿String//- JSP 파일명//- ViewResolver 호출@GetMapping(value="/ex06.do")public String test() { return "ex06";} 문자열은 ViewResolver를 호출하면서 JSP 파일 이름을 나타내는 용도로 사용했다. 🌿void@GetMapping(value="/ex06.do")public void test() {}서블릿에서 jsp를 호출을 안 하는 것과 같다. 그러면 브라우저에서 하얀 화면이 나와야 한다.그런데 화면이 출력된다. void..
[Spring] 컨트롤러 구현: 어노테이션 (Controller, RequestMapping, GetMapping, PostMapping, RequestParam, ModelAttribute)
🌿컨트롤러 구현1. Controller 인터페이스 구현2. @Controller 어노테이션 사용어노테이션을 사용하는 방식이 편의성이 좋기 때문에 더 많이 사용한다. 🍃@Controller 어노테이션 사용@Controllerpublic class Ex03Controller { }어노테이션을 사용하는 순간 인터페이스를 선언하는 것과 결과가 같다.handleRequest는 만들고 싶어서 만들었던 게 아니라 Controller 인터페이스가 만들라고 했기 때문에 만든 것이었다. 하지만 어노테이션을 사용하면 강제로 만들어야 하는 게 없다. 자유로운 요청 형식@Controllerpublic class Ex03Controller { public String test() { return ""; } publi..
[Spring] Spring 기반 MVC 웹 프로젝트 구현
Spring은 Controller, View 등을 사용하기 편하도록 MVC 패턴을 모두 구현을 해 두었다.Servlet/JSP에서는 웹 요청 처리와 통제를 Controller 역할로 지정해 주었지만, Spring MVC에서는 Controller라는 이름이 전용으로 있으므로 이를 사용한다. 🌿ControllerEx01Controller.java: jsp 연결package com.test.spring.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springfr..
[Spring] 관점 지향 프로그래밍 AOP: Aspect Oriented Programming
🌿Spring AOPAspect Oriented Programming관점 지향 프로그래밍(AOP)은 애플리케이션의 핵심 비즈니스 로직에서 분리된 관심사(Concern)를 모듈화 하여 코드의 가독성과 유지보수성을 향상하는 기술이다.관점(관심사)은 업무 구현 시 주 업무가 아닌 나머지 보조 업무를 의미한다. 주 업무와 보조 업무게시판 글쓰기를 예로 들어 주 업무와 보조 업무를 구분해 보도록 하자.1. 기존 방식- add.doa. 글쓰기 (주 업무)b. 권한 체크 (보조 업무)기존 방식은 주 업무와 보조 업무를 같은 곳(한 파일)에서 구현한다.단점: 코드 관리가 불편하다. 어디부터 어디까지가 주 업무이고 보조 업무인지 알기 어렵다. 2. AOP 방식- add.do주 업무와 보조 업무를 물리적으로 분리시켜서 ..
[Spring] 의존성 주입 DI: Dependency injection
DI와 AOP는 스프링의 핵심 기술이지만, 스프링의 전용 기술이 아니다.스프링이 있기 훨씬 이전에 있던 기술(아키텍처)인데, 스프링에서 도입한 게 Spring DI, Spring AOP이다.가장 핵심적인 기술인 만큼 현업 면접에서도 많이 물어보는 질문이기도 하다. 🌿Spring DIDependency Injection 디자인 패턴DI를 우리말로 하면 의존(성) 주입이라고 부른다.스프링에서 굉장히 중요한 개념인데, 스프링 내의 모든 객체를 관리할 때 사용하기 때문이다.눈에 보이는 부분, 눈에 보이지 않는 부분에서 모두 사용이 된다.DI의 정의는 프로그래밍에서 구성 요소 간의 의존 관계가 소스 내부가 아닌 외부 환경에서 정의되게 하는 디자인 패턴이다. 의존 관계com.test.spring.di01 패키지M..
[Spring] 개발자 환경 구축: STS 3, Maven
🌿Spring 설치Spring Tools 3full distribution on Eclipse 4.19Spring Tools 3 > Spring Tool Suite 3.9.18 > spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.ziphttps://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.19/spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.zip위 링크에서 압축파일을 다운로드한다.이 파일은 이클립스에서 스프링을 개발할 수 있게 배포한 Spring Tool Suite로, 줄여서 STS라고 부른다.Spring을 할 때에는 STS 3를 사용하고..