전체 글
-
pageHelper 웹 페이지를 만들면서 페이징 처리는 반드시 있어야 하는 내용이다. 하지만 DB마다 다른 쿼리를 사용해야하는 점이나 전체 페이지, 현재 페이지, 페이지당 데이터 수 등을 계산하기가 쉽지않다. JPA에는 별도로 Paging 관련 기능이 있는데 MyBatis에서는 관련 기능을 찾지 못하다 최근에 PageHelper라는 녀석이 눈에 띄어서 포스팅해본다. https://github.com/pagehelper/Mybatis-PageHelper pagehelper/Mybatis-PageHelper Mybatis通用分页插件. Contribute to pagehelper/Mybatis-PageHelper development by creating an account on GitHub. github.c..
Spring + mybatis + PageHelperpageHelper 웹 페이지를 만들면서 페이징 처리는 반드시 있어야 하는 내용이다. 하지만 DB마다 다른 쿼리를 사용해야하는 점이나 전체 페이지, 현재 페이지, 페이지당 데이터 수 등을 계산하기가 쉽지않다. JPA에는 별도로 Paging 관련 기능이 있는데 MyBatis에서는 관련 기능을 찾지 못하다 최근에 PageHelper라는 녀석이 눈에 띄어서 포스팅해본다. https://github.com/pagehelper/Mybatis-PageHelper pagehelper/Mybatis-PageHelper Mybatis通用分页插件. Contribute to pagehelper/Mybatis-PageHelper development by creating an account on GitHub. github.c..
2020.06.23 -
이번 시간에는 Spring Data project에 대해 살펴보자.Spring Data Spring Data란?https://spring.io/projects/spring-dataSpring Data는 전통적인 데이터 저장소에 대한 사용 특성을 유지하면서 여러 형태의 데이터 저장소를 활용하기 위한 프로젝트이다.프로그램에서 데이터를 영속적으로 저장하기 위해 과거에는 주로 관계형 데이터베이스를 많이 사용했고 데이터를 관리하기 위해 JDBC 기반의 기술들이 발전했지만 최근에는 비 관계형 데이터베이스, 맵 리듀스 프레임워크, 클라우드 기반 서비스들이 많이 등장했다. Spring Data는 다양한 데이터 저장소에 접근하는 다양한 기술들을 포함하는 포괄적인 프로젝트이다.Spring Data를 사용하면 MySql ..
02. Spring Data와 Spring Data JPA이번 시간에는 Spring Data project에 대해 살펴보자.Spring Data Spring Data란?https://spring.io/projects/spring-dataSpring Data는 전통적인 데이터 저장소에 대한 사용 특성을 유지하면서 여러 형태의 데이터 저장소를 활용하기 위한 프로젝트이다.프로그램에서 데이터를 영속적으로 저장하기 위해 과거에는 주로 관계형 데이터베이스를 많이 사용했고 데이터를 관리하기 위해 JDBC 기반의 기술들이 발전했지만 최근에는 비 관계형 데이터베이스, 맵 리듀스 프레임워크, 클라우드 기반 서비스들이 많이 등장했다. Spring Data는 다양한 데이터 저장소에 접근하는 다양한 기술들을 포함하는 포괄적인 프로젝트이다.Spring Data를 사용하면 MySql ..
2020.06.22 -
Spring Security 기본 로그인 처리 Spring Boot Securityspring-boot-starter-security를 pom.xml에 추가하면 SecurityAutoConfiguration이 동작해서 별도의 설정을 하지 않아도 웹 리소스를 사용하기 위해서는 로그인 처리가 필요하다. @SpringBootApplication에 있는 @EnableAutoConfiguration에 의해 Security에 대한 설정이 자동으로 이뤄지기 때문이다. 아직 본격적으로 security 를 처리할 단계가 아니라면 다음과 같이 처리할 수 있다. username, password 지정 application.properties에 다음과 같이 사용자 계정 정보를 추가해준다. spring.security.user..
Spring Security 기본 로그인 처리Spring Security 기본 로그인 처리 Spring Boot Securityspring-boot-starter-security를 pom.xml에 추가하면 SecurityAutoConfiguration이 동작해서 별도의 설정을 하지 않아도 웹 리소스를 사용하기 위해서는 로그인 처리가 필요하다. @SpringBootApplication에 있는 @EnableAutoConfiguration에 의해 Security에 대한 설정이 자동으로 이뤄지기 때문이다. 아직 본격적으로 security 를 처리할 단계가 아니라면 다음과 같이 처리할 수 있다. username, password 지정 application.properties에 다음과 같이 사용자 계정 정보를 추가해준다. spring.security.user..
2020.06.21 -
advice는 실행되는 시점에 따라 여러가지 타입으로 작성할 수 있다. 이번 포스트에서는 다섯가지 advice의 타입에 대해 살펴보자. advice 타입advice가 동작하기 위해서는 어떤 시점에 advice를 실행할 것인가를 결정해야 한다. Spring에서는 다섯가지 annotation으로 이 시점을 설정할 수 있다.애너테이션설명@Before타겟 메서드 호출 전 advice 실행@AfterReturning타겟 메서드가 정상 종료(return) 후 advice 실행@AfterThrowing타겟 메서드에서 예외가 던져졌을 때(throws XXException) advice 실행@After타겟 메서드 성공 여부(return or throws XXException)와 무관하게 언제나 advice 실행@Arou..
04. advice의 타입advice는 실행되는 시점에 따라 여러가지 타입으로 작성할 수 있다. 이번 포스트에서는 다섯가지 advice의 타입에 대해 살펴보자. advice 타입advice가 동작하기 위해서는 어떤 시점에 advice를 실행할 것인가를 결정해야 한다. Spring에서는 다섯가지 annotation으로 이 시점을 설정할 수 있다.애너테이션설명@Before타겟 메서드 호출 전 advice 실행@AfterReturning타겟 메서드가 정상 종료(return) 후 advice 실행@AfterThrowing타겟 메서드에서 예외가 던져졌을 때(throws XXException) advice 실행@After타겟 메서드 성공 여부(return or throws XXException)와 무관하게 언제나 advice 실행@Arou..
2020.06.20 -
이번 포스트에서는 advice를 어떤 target의 메서드 즉 join point에 적용 할 것인지 결정하기 위한 pointcut 작성에 대해 살펴보자. Pointcut(포인트컷) pointcut이란?Pointcut은 advice를 적용할 target의 메서드를 결정하는 메서드 선정 알고리즘으로 @Before 등 애너테이션의 value 값이다. pointcut을 작성 할 때는 execution, within, bean 등 지정자와 함께 사용한다.execution: 메서드의 signature 기반으로 한 정교한 포인트컷 작성법으로 가장 많이 사용된다.@Before("execution(String *..SimpleBean.getName())")within: 빈 클래스 기반으로 포인트컷을 작성한다. 작성 방식..
03. pointcut 작성이번 포스트에서는 advice를 어떤 target의 메서드 즉 join point에 적용 할 것인지 결정하기 위한 pointcut 작성에 대해 살펴보자. Pointcut(포인트컷) pointcut이란?Pointcut은 advice를 적용할 target의 메서드를 결정하는 메서드 선정 알고리즘으로 @Before 등 애너테이션의 value 값이다. pointcut을 작성 할 때는 execution, within, bean 등 지정자와 함께 사용한다.execution: 메서드의 signature 기반으로 한 정교한 포인트컷 작성법으로 가장 많이 사용된다.@Before("execution(String *..SimpleBean.getName())")within: 빈 클래스 기반으로 포인트컷을 작성한다. 작성 방식..
2020.06.20 -
이번 포스트에서는 간단한 Aspect를 작성해 보고 어떤 방식으로 동작하는지 살펴보자. Aspect 작성 테스트용 빈 등록 및 단위 테스트퇴근까지 30분!! 퇴근 후 친구와의 약속을 떠올리며 다음의 핵심 비지니스 로직을 가지는 계산용 빈을 만들었다.@Componentpublic class CalculatorBean { public double divide(int a, int b){ return a/b; } public int add(int... args){ return Arrays.stream(args).sum(); }}이제 위 빈이 잘 동작하는지 테스트 해보자. 테스트만 통과하면 퇴근 각이다.!@SpringBootTest@Slf4j@ActiveProfile..
02. Aspect 작성과 동작이번 포스트에서는 간단한 Aspect를 작성해 보고 어떤 방식으로 동작하는지 살펴보자. Aspect 작성 테스트용 빈 등록 및 단위 테스트퇴근까지 30분!! 퇴근 후 친구와의 약속을 떠올리며 다음의 핵심 비지니스 로직을 가지는 계산용 빈을 만들었다.@Componentpublic class CalculatorBean { public double divide(int a, int b){ return a/b; } public int add(int... args){ return Arrays.stream(args).sum(); }}이제 위 빈이 잘 동작하는지 테스트 해보자. 테스트만 통과하면 퇴근 각이다.!@SpringBootTest@Slf4j@ActiveProfile..
2020.06.18 -
problems occurred when invoking code from plugin org.eclipse.e4.ui.workbench 잘 동작하던 이클립스가 가끔 알수없는 오류를 내면서 속썩이는 날이 있다. 오늘이 바로 그날이다. 위 상황에서 Error Log 탭을 살펴보면 좀 더 자세한 내용이 나온다. workbench관련 오류인것 같다는 막연한 느낌같은 느낌으로 구글링 해보니 workbench가 정상적으로 저장되지 않아서 발생하는 오류인듯하다. workspace -> .metadata -> .plugins -> org.eclipse.e4.workbench에 workbench.xmi 파일이 있는데 이녀석이 문제다. 어디가 문제인지 파악해보려고 파일을 열었지만 너무 항목이 많아서 포기. 과감히 삭제하..
[eclipse] problems occurred when invoking code from plugin org.eclipse.e4.ui.workbenchproblems occurred when invoking code from plugin org.eclipse.e4.ui.workbench 잘 동작하던 이클립스가 가끔 알수없는 오류를 내면서 속썩이는 날이 있다. 오늘이 바로 그날이다. 위 상황에서 Error Log 탭을 살펴보면 좀 더 자세한 내용이 나온다. workbench관련 오류인것 같다는 막연한 느낌같은 느낌으로 구글링 해보니 workbench가 정상적으로 저장되지 않아서 발생하는 오류인듯하다. workspace -> .metadata -> .plugins -> org.eclipse.e4.workbench에 workbench.xmi 파일이 있는데 이녀석이 문제다. 어디가 문제인지 파악해보려고 파일을 열었지만 너무 항목이 많아서 포기. 과감히 삭제하..
2020.06.18 -
AOP스프링의 특징을 딱 두 가지만 들어보라면 앞서 배운 DI와 지금 소개할 AOP이다. 사실 AOP는 프로젝트 과정에서 적극적으로 사용하지 않을 수도 있지만 스프링 내부적으로 어마어마하게 많이 사용되고 있는 기술이다. 무언가 스프링이 처리하는 마법 같은 일들은 대부분 AOP의 결과인 것들이 많다.과연 AOP란 무엇일까? AOP(Aspect Oriented Programming: 관점 지향 프로그래밍)란?AOP는 사실 용어조차 추측하기 힘들다. 어떤 "관점을 기반으로 프로그래밍 한다"는 이야기인데 찬찬히 살펴보자.일상생활에서의 관점과 관점 지향적 삶먼저 일상 생활에서 "관점"이라는 것을 생각해 보자. 우리는 사무실, 식당, 헬스장 등 다양한 공간에서 다양한 일을 한다. 사무실에서는 업무를 처리하고, ..
01. AOP 기본 컨셉AOP스프링의 특징을 딱 두 가지만 들어보라면 앞서 배운 DI와 지금 소개할 AOP이다. 사실 AOP는 프로젝트 과정에서 적극적으로 사용하지 않을 수도 있지만 스프링 내부적으로 어마어마하게 많이 사용되고 있는 기술이다. 무언가 스프링이 처리하는 마법 같은 일들은 대부분 AOP의 결과인 것들이 많다.과연 AOP란 무엇일까? AOP(Aspect Oriented Programming: 관점 지향 프로그래밍)란?AOP는 사실 용어조차 추측하기 힘들다. 어떤 "관점을 기반으로 프로그래밍 한다"는 이야기인데 찬찬히 살펴보자.일상생활에서의 관점과 관점 지향적 삶먼저 일상 생활에서 "관점"이라는 것을 생각해 보자. 우리는 사무실, 식당, 헬스장 등 다양한 공간에서 다양한 일을 한다. 사무실에서는 업무를 처리하고, ..
2020.06.18