Develop (317) 썸네일형 리스트형 [Spring] RestTemplate RestTemplate이란? Spring 3.0에서부터 지원하는 RestTemplate은 Http 통신에 유용하게 쓸 수 있는 템플릿이다. Rest 서비스를 호출하도록 설계되어 HTTP 프로토콜 메서드에 맞게 여러 메서드를 제공한다. 특징 -통신을 단순화 하고 RestFul 원칙을 지킨다. -멀티쓰레드 방식을 사용한다. -블라킹 방식을 사용한다. RestTemplate의 구동방식 쓰레드 풀은은 요청자 어플리케이션 구동시에 만들어진다. Request 는 먼저 큐에 쌓이게 되고 가용한 쓰레드가 있으면, 스레드에 할당되어 처리된다. 1 요청당 1스레드가 할당 된다. 스레드에서는 블로킹 방식으로 처리되어, 응답이 올때까지 해당 스레드는 다른 요청에 할당 될 수 없다. 정확한 동작 방식 1. 어플리케이션이 Res.. [Spring] Dao와 repository 차이 Dao와 repository는 Data Access한다는 관점은 같지만, Repository는 객체 중심, Dao는 데이터 저장소 중심인 것이다. Dao는 storage system에 더 가까운 개념, 상대적으로 low level concept이다. Repository는 Domain객체에 가까운 개념, 상대적으로 high level concept이다. Dao Data Access Object로 실제 영구저장소에 접근하는 객체이다. 테이블 단위로 설계가 되며, DB Sql단위로 설계가 된다. Repository Repository는 객체 상태를 관리하는 저장소로 볼 수 있다. 엔티티 자체를 저장하고 불러온다. Domain Driven Design에서 생긴개념이다. DB 테이블 보다 객체 중심의 Layer라.. [Spring] Hikari란 Database Connection Pool이란? 사용자의 요청에 따라 무수한 Connection을 생성하면, 서버에 과부하가 걸리게 된다. 미리 설정해놓은 일정수의 Connection을 만들어 놓고 이것을 Connection Pool에 보관해두었다가 요청이 발생하면 제공을 하고 Connection 사용이 끝나면, 다시 Pool에 반환하여 보관하는 기술을 DB connectionPool이라고 한다. 해당 장점은 이렇다. -DB 접속 설정 객체를 미리 만들어 연결하여 메모리 상에 등록해 놓기 때문에 클라이언트가 빠르게 DB에 접속 가능하다. -DB connection 수를 제한 할 수 있어서 과도한 접속으로 인한 서버 자원 고갈 방지 기능 -DB 접속 모듈을 공통화해 DB서버의 환경이 바뀔 경우 쉬운 유지.. [Spring] Transactional 1. 정의 비즈니스 로직이 트랜잭션 처리를 필요로 할때 트랜잭션 처리 코드가 비즈니스 로직과 공존한다면, 코드 중복이 발생, 비즈니스 로직에 집중 또한 힘들어진다. @Transactional은 이러한 문제를 해결해주는 Spring이 제공하는 어노테이션으로 트랜잭션을 메서드 또는 클래스에 명시하게 되면, 특정 메서드 또는 클래스가 제공하는 모든 메서드에 대해 내부적으로 AOP를 통해 트랜잭션 처리코드가 전후로 수행된다. Transactional은 두가지 방식으로 처리가된다 -Jdk dynamic Proxy (interface 구현 필요, 해당 인터페이스를 추상메서드로 오버라이딩해서 프록시 객체를 런타임시, dynamic하게 생성) -CGLIB (인터페이스없는 타겟을 상속받아서, 프록시 객체를 만든다. 바이.. [Spring] RequestBody, RequestParam, ModelAttribute @Requestparam 1:1로 값을 바인딩 해준다. (Get방식만 지원) 1:1로 받는값이 매서드 매게변수의 생성자의 인자와 일치하면 객체를 바로 바인드 한다. 잘못된 파라미터값이 오면 400발생 바인딩 해오는 값과 일치하면 인스턴스를 그냥 주입해주고, 아니라면 별도 이름을 지정, 해당 이름 과 같다면 주입해준다. @ModelAttribute 여러 파라미터 매게변수를 바인딩해준다. 단일 값부터 오브젝트까지 다양하다. setter를 사용해 담아주기 때문에 매게변수의 바인딩을 받는 필드는 setter가 있어야 한다. 타입변환에 실패하더라도 작업은 계속된다. 메서드 인자의 model의 attribute에 접근 할 수 있다. 파라미터 이름을 명시하지 않으면 필드명과 일치하는 필드의 Setter를 이용해서 데.. [Spring] root, servlet context, web.xml web.xml web.xml은 설정을 위한 설정 파일이다. WAS가 처음 구동될때 web.xml을 읽어, 웹 애플리케이션 설정을 구성한다. DispatcherServlet을 등록해주면서 스프링 설정 파일을 지정한다. DispatcherServlet은 초기화 과정에서 지정된 설정 파일을 이용해 스프링 컨테이너를 초기화 시킨다. web.xml은 초기 로드시 로드해야하는 xml들에 대한 정의 이다. WAS가 최초로 구동될때 각종 설정을 정의 해주는, 설정에 대한 경로를 정의해주는 파일이다. web.xml에서 두가지 전부 로드된다. root-context servlet-context *root-context root-context에 등록되는 빈들은 모든 컨텍스트에서 사용가능하다. service,dao포함, 웹 .. [Spring] Maven 이란 Maven은 자바용 프로젝트 관리도구로, Apache Ant의 대안으로 만들어졌다. Maven은 Ant와 마찬가지로 프로젝트 전체적인 라이프사이클을 관리하는 도구이다. Maven은 필요한 라이브러리를 특정 문서에 (pom.xml)에 정의해놓으면 내가 사용할 라이브러리뿐아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리까지 관리하여, 네트워크를 통해 자동 다운을 받아준다. Maven은 중앙 저장소를 통한 자동 의존성 관리를 해주는 곳이라고 보면된다. 라이브러리를 공유하는 파일서버라고도 할수 있다. ant라는 것에 비해 라이브러리 의존관리가 되어서 많이 쓰이고.간단한 설정을 통한 배포관리가 가능하다. 메이븐은 프레임워크이기 때문에 동작방식이 정해져있고 미리 정의하고있는 빌드 순서가 있다. 이를 라이프.. [Springboot] starter dependency 스프링 부트 프로젝트 시작에는 pom.xml에 버전관련 내용은 없다. org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE 해당 내용이 버전 관리를 해주는데, 타고들어가면 알수 있다. spring-boot-starter-parent 폼파일 하위에는 spring-boot-dependencies 이있고, 해당 영역을 타고 들어가면,Spring-boot-dependcies라고 시작하는 이름의 파일을 볼수 있다. dependencyManagement, dependencyManager 영역에 모든 버전 정보들이 명시 되어있다.따라서 직접 버전을 명시하지 않아도, 저곳에서 버전정보를 가져오게 되고, 버전을 직접 명시를 할 수도있지만가급적 충돌문제로인해.. 이전 1 ··· 21 22 23 24 25 26 27 ··· 40 다음