spring

개발설정

[개발설정/Spring] 메이븐 설정

1.메이븐 프로젝트 설정 위치 2.pom.xml 파일 2.1.POM(Project Object Model) :프로젝트의 구조와 내용을 설명하며 pom.xml파일에 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등을 기술한다. 2.2.POM,XML의 구성 : Maven의 XML 네임스페이스를 지정 : Maven의 model Version : 그룹 ID태그 : 아티팩트ID 태그 : 버전명 태그 패키징 형식을 지정하는 태그 : 프로젝트의 이름 : Maven의 url : 프로젝트 관련 속성 : pom.xml의 상속에 관련된 태그 : 프로젝트가 의존하는 라이브러리들의 정보 2.2.1.dependency 정의 태그 : 라이브러리의 그룹 아이디 : 라이브러리의 아티팩트 아이디 : 라이브러리의 버전 : 라이..

Spring/SpringMVC

[Spring MVC] 계층의 분리

1. 3계층 Spring은 3계층으로 구분 할 수 있다. 사용자 요청을 받아 흐름을 제어하는 Presentation Layer, 비즈니스 로직을 담당하는Business Layer, 데이터 베이스에 접근하여 데이터 베이스를 다루는 Persistence Layer(Data Access Layer)로 계층을 분리 할 수 있다. UserHistoryDao 회원의 이력을 추가, 삭제, 수정 등 비즈니스 로직을 수행하는 역할이 필요하다. Persistence Layer인 UserDao는 단순히 DB테이블의 정보를 CRUD(Creadt, Remove, Update, Delete)하는 기능만 수행하기에 비즈니스 수행할 수 없다. 그래서 Presentation Layer인 RegisterController에게 UserH..

Spring/REST API와 Ajax

REST API와 Ajax

1. JSON? JSON(Java Script Object Notation)은 자바 스크립트 객체 표기법이다. JSON 이전에는 XML을 이용하여 데이터를 교환했다. 하지만 XML은 데이터보다 태그가 더 많고 복잡하여 효율성이 떨어졌다. 이 문제를 해결하기 위해 등장 한 것이 자바 스크립트로 객체를 표기한 JSON이다. {속성명1: 속성값1, 속성명2: 속성값2, ...} // 기본 [{속성명: 속성값, ...}, {속성명: 속성값, ...}, ...] // 객체 배열 {키1:{속성명: 속성값, ...}, 키2:{속성명: 속성값, ...}, ...} // Map 1-1 stringify()와 parse() JS객체를 서버로 전송하려면, 직렬화 즉, 객체를 문자열로 변환하여 저장하는 작업이 필요하다. 반대..

Spring/Spring DI와 AOP

[Spring DI와 AOP] Transaction, Commit, Rollback

1.Transaction? Transaction은 더이상 나눌 수 없는 작업의 단위다. Transaction대신 별칭 Tx로 자주 표현되며, Transaction의 종류로는 대표적으로 SQL에서 insert, update, select를 수행하는 작업이 있다. 만약 계좌이체를 한다고 하면 출금(update)과 입금(update)이 하나의 Tx로 묶여야한다. 하나의 Tx로 묶여한다는 의미는 하나의 작업단위가 되어야 한다는 말이다. 내 계좌에서 은행계좌로 1000만원을 입금한다고 가정해보자. 그러면 내 계좌에서는 1000만원이 빠져나가야하고 은행계좌에는 1000만원이 입금되어야한다. Transaction이 제대로 이뤄지면 결과적으로 내 계좌(-1000만원) 은행계좌(+1000만원)인 작업이 실행 될 거다. ..

Spring/Spring DI와 AOP

[Spring DI와 AOP] DAO

DAO? DAO(Data Access Object)는 데이터(Data)에 접근(Access)하기 위한 객체(Object)다. DAO는 DB에 저장된 데이터를 쓰고(Create), 읽고(Read), 변경하고(Update), 삭제(Delete)를 한다. DB테이블당 하나의 DAO를 작성한다. 그렇다면 DAO를 왜 작성할까? DAO를 작성하는 가장 큰 이유는 코드의 중복을 피하기 위함이다. 위의 그림을 보면 DAO를 생성하기 전에는 selectUser()가 중복되는 걸 알 수 있다. 이후 DAO를 생성하면 중복되는 코드와 DAO가 수행하는 역할(쓰기, 읽기, 변경하기, 삭제하기)을 따로 떼어낼 수 있다.DAO를 생성함으로써 코드를 간결하게 할 수 있다. 코드의 중복을 피하는 것이외에도 관심사((Presenta..

Spring/Spring DI와 AOP

[Spring AOP] AOP의 개념과 사용

1.AOP(Aspect Oriented Programming)란? AOP의 약자를 풀어쓰면 관점 지향 프로그래밍이다. 관점 지향 프로그래밍? 어려운 말이다. 간단히 말하면 관점을 나눠서 프로그램을 짜는 방식이라고 말할 수 있다. AOP는 다른 말로 부가기능(advice)을 동적으로 추가해주는 기술이다. 이 말도 어렵다 부가기능은 무엇이고 동적이란 말은 무엇인가? 부가기능은 핵심기능의 반댓말이다. 그리고 동적이란 말은 실행중이라는 뜻이다. 즉 핵심기능이 아닌 기능을 실행중에 추가하는 기술이다. 하지만 그래도 어렵다. 마지막으로 한 줄로 AOP를 요약하면 메서드의 시작 또는 끝에 자동으로 코드(advice)를 추가하는 기술이다. 코드를 통해 AOP의 개념을 조금 더 살펴보자. 2.공통 코드의 분리 MyCla..

Spring/Spring DI와 AOP

[Spring DI] BeanFactory / ApplicationContext 와 IoC / DI

1.Bean과 Spring container Bean은 Spring Container가 관리하는 객체이다. Spring container는 Bean의 저장소이며 Bean을 저장, 관리(생성,소멸,연결) 한다. BeanFactory : Bean의 기본기능(생성, 연결...)을 정의 ApplicationContext : BeanFactory를 확장하여 기능을 추가 정의. Spring Container와 유사함. 2.ApplicationContext XML Java Config non-Web GenericXmlApplicationContext AnnotationConfigApplicationContext Web XmlWebApplicationContext AnnotationCofigWebApplicationC..

Spring/SpringMVC

[SpringMVC] @RequestParam과 @ModelAttribute

1.@RequestParam @RequestParam은 요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션이다. @RequestParam이 쓰이는 경우를 살펴보자. 1-1.@RequestParam을 생략하는 경우 @RequestParam은 기본적으로 매개변수로 파라미터의 이름을 나타내는 name과 @RequestParam 필수 여부를 따지는 required를 매개변수로 갖는다. 그림과 같이 필수 여부를 따지는 required가 false일 경우 @RequestParam을 생략해도 문제가 없다는 의미로 생략이 가능하다. required 값이 필수가 아닐 경우 null과 ""(공백)이 요청값으로 들어올 경우 타입문제가 발생한다. 오류를 막기위해 required 값이 필수가 아닐 경우 기본 값을 1로 지정한..

각시탈코더
'spring' 태그의 글 목록