개발공부/Spring(24)
-
[토비의 스프링 3.1] - 1장 오브젝트와 의존관계
프로젝트를 진행하면서 '설계'가 중요하다는 것을 느꼈습니다. 스프링 프레임워크로 웹서비스를 만드는 건 뼈대를 가진 목재 구조의 집을 짓는 것과 비슷합니다. 시멘트를 깔기전에 보일러 열선도 깔아야 되고 차단제라던가 여러 설계들을 신경써야 되듯이 웹사이트 구현에 필요한 객체들 의존관계를 어떻게 형성하고 코드로 구현하는지 사전 설계가 50%는 차지 한다고 생각합니다. 그래서 참고할만한 책들을 찾았고 그 중에 우아한 형제 개발자로 알고 있는 저자 토비의 스프링이란 책을 도서관에서 빌려왔습니다. 오늘 너무 피곤해서 많이 읽지는 못했지만 디자인 패턴도 몇가지 알게 되었고 스프링 원리를 이해할 수 있었습니다. 프로젝트를 진행하는 과정에선 이론까지 정리하기엔 무리라서 이렇게 책으로 보완해나가니 도움이 돼줄것 같습니다...
2020.12.02 -
[Spring] MyBatis 연동
Spring 학원 강의도 이제 2강을 남겨두고 있습니다. 비대면으로 듣다보니 중간에 집중이 떨어지기도 했지만 중요한 부분은 정리해 업로드 하고 있습니다. MyBatis는 Spring에서 DB에 명령할 SQL문을 작성하고 관리하는데 있어 JDBC보다 효율적인 SW입니다. 1) 기본 설정 - mybatis-config .xml: MyBatis 동작 관련 설정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Colored by Color Scripter cs - pom.xml : Spring Dependency 설정 파일에 MyBatis 설정도 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 org.mybatis mybatis-spring 1.2.2 org..
2020.10.14 -
[Spring] MVC 웹페이지 구현 - Model & 회원가입 페이지
JSP에서 getAttribute로 parameter 값을 받았었는데 Spring에선 MVC패턴을 활용해 Model 클래스 addAttribute 메서드로 parameter를 받을 수 있습니다. 그리고 클라이언트에 보여줄 View로 사용할 JSP 파일에 EL(Expression Language)를 사용해 웹페이지 출력하는 실습도 진행해보겠습니다. 회원가입 페이지를 만들어 DB에 저장하는 프로젝트를 실습으로 진행하고 있는데 이번 글에선 클라이언트로부터 요청이 오면 간단한 정보를 받아 페이지를 옮겨주는 것까지 설명하겠습니다. 1) Controller 만들기 MVC 패턴에서 Controller는 요청을 받아 DB에 접근해 데이터를 가져온 뒤 응답해주는 역할을 합니다. 따라서 중요한 기능을 하기 때문에 우선적으..
2020.10.07 -
[Spring] MVC 웹페이지 구현 - Eclipse & xml 설정
MVC 패턴을 이용해 클라이언트 요청이 오면 웹페이지를 띄워주는 본격적인 Spring으로 웹 구현하기에 돌입했습니다. 클라이언트가 요청(request)를 보내면 Tomcat 서버를 통해 DispatchServlet이 받아줍니다. Controller는 요청에 맞는 응답(response)를 반환하고 다시 DispatchServlet으로 간다음 ViewResolver가 클라이언트에 보여줄 View 페이지를 찾아 반환해줍니다. 이러한 일련의 요청-응답(request-response)과정이 MVC 패턴입니다. 1) Spring을 위한 IDE 설정 -강의 IDE는 Ecplise를 사용합니다.- 우선 pom.xml 파일에 관련된 dependency 들을 추가해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 ..
2020.10.07 -
[Spring] AOP ④ - (예제) HashMap으로 Cache 기능구현
AOP 시간 마무리로 HashMap을 이용한 Cache 기능 구현을 해보려 합니다. Factorial(팩토리얼) 메서드를 인터페이스에서 implements하여 클래스 두 가지로 나눠 담았습니다. ProceedingJoinPoint는 Java API JoinPoint Class인데 getArgs() 메서드는 execution 메서드. 즉 공통(횡단) 메서드의 매개변수를 배열로 반환해 줍니다. 메서드 return 값을 반환해주는 proceed() 메서드의 데이터 타입은 Object 이기 때문에 주의해야 합니다. 핵심은 cache 기능을 Map 인터페이스의 HashMap 클래스로 구현하는 부분입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2..
2020.09.30 -
[Spring] AOP ③ - @Pointcut, @Around...
Interface를 이용한 자동 메서드 주입은 AOP를 몰랐기 때문에 제가 붙인 풀어서 쓴 이름이고 AOP에 대해 이어서 얘기해보겠습니다. 개발할 때 중복이 많다면 좋은 코드가 아니라고 합니다. 흔히 클린코드의 특성 중 하나도 중복성 최소화가 포함됩니다. 따라서 아노테이션과 XML 파일을 사용해 AOP 구현방법을 이전 글에서 다루어 보았는데 연장되는 내용으로 스프링의 추가 기능 @Pointcut이 있습니다. pointcut 지정 아노테이션 @Pointcut 해당 아노테이션을 사용하면 말이죠 핵심 메서드의 경로를 공통 메서드에 일일이 쳐넣을 필요가 없습니다. 단 @Pointcut를 선언한 메서드를 담아주기만 하면 될 뿐. 말로 설명하는 것보다 바로 코드를 보시죠. 보시면 @Before() 괄호 내에 일일이..
2020.09.24