framework/spring 50

2. connectionPool 과 datasource 이해

1. connectionPool의 이해 connection을 새로 만드는 것은 과정이 복잡하고 시간도 많이 소모된다. - app과 db의 connection 맺는 과정에서 3 way handshake가 수행되기 때문 문제점 DB , app server에서도 tcp/ip 컨넥션을 새로 생성하기 위한 리소스를 매번 사용 고객이 app을 사용할 때, SQL을 실행하는 시간, connection을 새로 만드는 시간이 추가되기 때문에 결과적으로 응답 속도에 영향을 준다. 해결방안 connection을 미리 생성해두고 사용하는 connection pool 방법 이용 connection pool app이 시작되는 시점에 connection pool은 필요한 만큼 connection을 미리 확보해서 pool에 보관한다..

framework/spring 2023.09.22

1. JDBC의 이해

spring boot db dependency JDBC API H2 Database Lombok test code에서 lombok 사용 시, dependency 추가 test code에서 @Slfj4 사용 하기 위함 testComileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 1. H2 db 설정 개발, 테스트 용도로 사용하는 가벼운 db sql 작성 화면 제공 설치 다운로드 및 설치 : https://www.h2database.com h2 다운로드 버전확인: https://www.h2database.com/html/download-archive.html h2 데이터베이스 버전은 스프링 부트 버전에 ..

framework/spring 2023.09.22

4. 데이터 접근 기술 - MyBatis(spring, maven) 활용

생성해야하는 파일 myBatis-config.xml 수정 DTO 생성 파일명 : ~~~.Dto DAO 생성 파일명 : ~~~Dao || DaoImpl Mapper 생성 파일명 : ~~~~Mapper.xml 1. myBatis-config.xml 자주하는 실수 : 별명을 무조건 올린다. mapper에서 returntype으로 그냥 쓸 때 에러 발생 / 별명(alias)가 중복되면 안된다. 2. DTO 생성 package com.teamProject.ezmeal.domain; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor..

framework/spring 2023.06.30

2. spring mvc1

1. WAS 작동 큰 그림 서블릿이라는게 http message의 실제 필요한 부분만 logic에 사용할 수 있도록 반복 작업을 다 수행해준다. request, response 라는 것을 이용해서 요청온 정보중 원하는 부분만 가지고 올 수 있고 내가 보내고 싶은 정보를 보낼 수 있다. 2. 서블릿 2.1. 기본 임시저장소 request.setAttribute(name, value) request.getAttribute(name) 세션관리 request.getSession(create: true) 요청 queryParams, html api text json 2.2. 요청 queary params, html form 조회 메서드 // http://localhost:8080/request-param?user..

framework/spring 2023.05.24

1. spring 핵심 요약

0. 자세한 내용 1~2 chapter: 스프링 핵심 원리 이해 2 - 객체 지향 원리 적용 , 스프링 핵심 원리 이해 3 - 스프링 컨테이너와 스프링 빈 3 chapter: 스프링 핵심 원리 이해 4 - 싱글톤 컨테이너 4 chapter: 스프링 핵심 원리 이해 5 - 컴포넌트 스캔 5~6 chapter: 스프링 핵심 원리 이해 6 - 의존관계 자동 주입 7 chapter: 스프링 핵심 원리 이해 7 - bean 생명주기 callback 8 chapter: 스프링 핵심 원리 이해 8 - bean scope 1. appConfig srp, dip, ocp 지키는 방법 수동 빈 등록 방법 종류 appConfig.java appConfig.xml @Configuration @ComponentScan이 읽고 ..

framework/spring 2023.05.22

4. 데이터 접근 기술 - MyBatis(spring, maven) 이론

0. summary_설정 library 받기 root-context에서 libaray로 부터 받은 2가지 1) sqlSessionFactory 2) sqlSession 의 설정을 해준다. sqlSessionFactory dataSource: bean으로 등록된 dataSource를 myBatis에게 전달 configLocation: myBatis의 내부 설정 파일 등록 mapperLocations: myBatis는 repository인 DAO와 sqlQuery인 mapper를 따로 분리 해서 사용하는데 그 중 mapper의 위치를 지정하는 설정 sqlSession repository Dao에서 sqlSession의 method를 이용해서 mapper의 sqlQuery를 사용한다. 2.1.2의 config..

framework/spring 2023.05.19

2. 데이터 접근 기술 - 스프링 JdbcTemplate

1. JdbcTemplate 소개와 설정 1.1. 장점 설정의 편리함 JdbcTemplate은 spring-jdbc library에 포함되어 있는데, 이 library는 spring으로 JDBC 사용시, 기본으로 사용되는 library여서, 복잡한 설정없이 바로 사용가능 반복 문제 해결 JDBC 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다. SQL 작성하고, 전달할 params만 정의하고, 응답 값을 매핑만 하면된다. 처리하는 반복 작업 Connection 획득, statement 준비 및 실행, 결과를 반복하도록 루프 실행, 컨넥션-statement-resultset 종료, transection, 스프링 예외 변환기 실행 1.2. JdbcTemplate 설정 jdbc만 추가하면 JdbcTe..

framework/spring 2023.05.14

스프링 mvc2 - 1 메시지, 국제화

1. 메시지, 국제화 소개 messages.properties : key-value로 메시지 관리 file 생성 1.1. 메시지 메시지: 동일한 단어를 일일이 변경하는 까다로움을 해결하기 위해서 다양한 메시지를 한 곳에서 관리하도록 하는 기능 방식 경로: resources/messages.properties hello=안녕 hello.name=안녕 {0} 사용: thymeleaf에서 메시지 key를 불러서 value를 사용 : #{messageKEY} 1.2. 국제화 경로: resources/messages_en.properties hello=hello hello.name=hello {0} label.item=Item label.item.id=Item ID label.item.itemName=Item N..

framework/spring 2023.05.13

스프링 mvc2 - 8. 스프링 타입 컨버터

0. summary implements Converter 로 사용자 정의 converter 생성 webMvcConfigure의 addFormatter()를 이용해서 해당 converter를 DefaultConversionSerivce에 등록한다. converter 사용은 내부적으로 동작하므로 내부 동작을 할 수 있도록 1. 스프링 타입 컨버터 소개의 스프링과 타입 변환 예처럼 사용하면 알아서 converting 된다. formatter도 동일하다. 하지만 converter보다 우선순위에서 밀린다. 1. 스프링 타입 컨버터 소개 스프링이 중간에서 타입변환기를 사용해서 타입을 변환해주는 것 스프링과 타입 변환 예 스프링 MVC 요청 파라미터 : @RequestParam @ModelAttribute, @Pat..

framework/spring 2023.05.10

스프링 mvc2 - 7. API 예외 처리

1. API 통신 Api 통신 일반적인 웹사이트 통신 client와 개발자가 만든 server와 http protocal을 기반으로 통신을 한다. 그래서 보통은 html의 form 혹은 queary를 통해서 요청 data를 주면 server에서는 java, node.js , phython 등 사용한 백엔드 언어를 통해서 data 혹은 html view를 response를 해준다. api 통신 server와 server 간의 통신이 대표적 ex) client가 웹사이트에서 날씨 정보를 클릭하면 server는 서로 호환하고 있는 날씨 서버의 api와 통신 후 받은 data를 client에게 줄 때도 api 통신이 이용된다. api 통신은 보통 주 목적이 data를 주고 받는 것이기에 html이 아닌 JSON..

framework/spring 2023.05.08