전체 글 (205) 썸네일형 리스트형 객체 지향 설계와 스프링 스프링이란 스프링 프레임워크 스프링 부트 스프링의 핵심 좋은 객체 지향 프로그래밍 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들며 이를 다형성이라고 한다. 다형성을 비유하자면 역할과 구현으로 세상을 나눌 수 있다. 운전자와 자동차를 비유로 들어보면 운전자 역할과 자동차 역할이 있다. 여기서 자동차는 변경되어도 운전자가 운전하는 것에 문제는 전혀 없다. 자동차 역할에 다른 자동차가 들어간다고 해도 운전을 못하게 되는 것이 아니라는 것이다. 이 이유는 자동차 역할에 대한 인터페이스에 따라서 자동차를 구현했기 때문이다. 운전자는 자동차의 자세한 내부를 몰라도 운전이 가능하다는 말은 새로운 자동차가 나와도 클라이언트가 운전을 그대로 가능하다는 것이다. 공연 무대에 있어서도 역할안에 들어가는 배.. AOP AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? //회원 가입 public Long join(Member member){ //메서드 실행 될 때 시간 출력 long start = System.currentTimeMillis(); try{ validateDuplicationMember(member); //중복회원 검증 memberRepository.save(member); return member.getId(); }finally { //메서드 끝날 때 시간 출력 long finish = System.currentTimeMillis().. 스프링 DB 접근 기술 H2 데이터베이스 설치 drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ); 위와 같은 테이블 생성 자바에서의 Long 타입은 sql에서는 bigint generated by default as identity는 null값이 들어왔을 때 DB에서 알아서 값을 채워주도록 해주는 쿼리문 순수 JDBC 이 부분은 학원에서 하던 방식이어서 내용은 추가하지 않았음 @Configuration public class SpringConfig { private DataSource dataSource; @Autowired p.. MyBatis 쿼리를 별도로 뽑아내는 기능을 추가 pom.xml에 추가 org.mybatis mybatis 3.2.8 org.mybatis mybatis-spring 1.2.2 org.springframework spring-jdbc 4.1.4.RELEASE servlet-context.xml에 추가 쿼리만 따로 넣고, DAO에서 찾아감 - xml 안에 쿼리를 넣어두고, 컨트롤러에서 가져옴 http://mybatis.org/dtd/mybatis-3-mapper.dtd"> m.javalec.spring_test_member_mybatis.dao.IMemDao"> 위와 같은 형식으로 Dao.xml 작성 MVC_BOARD를 MyBatis를 사용해서 바꾼 것 service 파일들을 사용하지 않고 컨트롤러에서 바로 dao로 연.. 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 먼저 홈 화면으로 가는 것만 있는 컨트롤러 생성 Hello Spring 회원 기능 회원 가입 회원 목록 홈 화면은 위와 같은 형태로 링크 2개만 있음 회원 웹 기능 - 등록 회원 등록 입력 폼 이름 등록 html에서 입력 받을 정보를 받는 클래스 public class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }.. 스프링과 빈의 의존관계 컨트롤러를 통해서 외부의 요청을 받고, 서비스에서 비즈니스 로직을 만들고, 리포지토리에서 데이터를 저장하는 것이 정형화된 패턴 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러에 의존관계 추가 @Controller public class MemberController { private final MemberService memberService; //스프링빈에 등록되어 있는 멤버서비스 객체를 가져와서 생성자에 넣어주며 //이를 DI라고 한다.(의존관계를 기입) //멤버 컨트롤러를 스프링 컨테이너가 뜰 때 생성을 해줌 //그 때 생성자를 호출하며, 그 때 @Autowired가 달려 있으면 //멤버 서비스를 스프링이 스프링 컨테이너에 있는 멤버 서비스를 가져와서 연결을 시켜줌 @Autowired public.. 스프링 JDBC JDBC Template을 이용한 반복코드 줄이기 원래 진행했던 많은 양을 템플릿에 담아두고 간편하게 사용하는 것이 가능 Spring 빈을 이용한 코드 간소화 JDBC를 이용한 리스트 목록 만들기 리스트 뽑아내던 긴 내용을 위처럼 간단하게 나타낼 수 있음 JDBC Template을 이용하기 위한 설정 pom.xml org.springframework spring-jdbc 4.1.4.RELEASE servlet-context.xml JDBC Template을 이용하기 위한 설정2 예제는 이전에 했던 MVC 게시판 예제의 파일을 이름만 변경해서 사용 설정 1 부분을 모두 한 이후에 아래의 내용 진행 컨트롤러 - 변경된 부분 dao - 변경된 부분 연결 부분 조회하는 부분 이전에 했던 긴 내용을 저렇게 압축 .. MVC 로그인 문제 (JDBC 템플릿 사용 부분도 추가) DAO 컨트롤러 서비스 --- JDBC 템플릿 사용하고 변경 사항 --- --- --- --- HomeController에 저렇게 추가하면 컨트롤러에서 실행한 후 url창에 적을 필요 없이 바로 저 페이지로 이동 --- DTO도 생성해줌 이전 1 2 3 4 5 6 7 8 ··· 26 다음