programming/spring

    [Spring] 코드 난독화

    9. 코드 난독화 9.1 자바스크립트 난독화 * 자바스크립트는 클라이언트에서 실행되는 스크립트 언어이므로 소스 코드가 그대로 노출됨 * 자바스크립트 난독화 사이트 http://dean.edwards.name/packer/ 9.3 자바 코드 난독화(Java Code Obfuscation) - 자바 프로그램은 디컴파일(decompile), 디스어셈블(disassemble)이 가능하므로 코드 난독화가 필요함 - 프로가드(proguard) : 대표적인 자바 난독화 라이브러리 - 변수명, method name을 읽기 어렵게 변환함 - 난독화를 해도 근본적으로 디컴파일은 막기 어려움 - spring 프로젝트보다는 자바 프로젝트에 적합(war 파일보다는 jar 파일로 export 할 경우에 적합함, 어노테이션, xm..

    [Spring] Interceptor(인터셉터)

    8. Interceptor(인터셉터) 8.1 interceptor(인터셉터) - 요청을 가로채는 작업(전후) 매개변수 - HttpServletRequest, HttpServletResponse용도 - 로그인 처리, pc웹/모바일웹 분기 처리 등 Filter(필터) - DispatcherServlet 이전에 실행AOP - @Around → ProceedingJoinPoint@Before, @After → JoinPoint 실행순서 : Filter > DispatcherServlet > Interceptor > AOP 8.2 실습예제 8.2.1 interceptore.SampleInterceptor.java8.2.2 servlet-context.xml 인터셉터 관련 설정8.2.3 views/include/s..

    [Spring] AOP

    7. AOP 7.1 AOP의 개요 7.1.1 AOP (Aspect Oriented Programming, 관점(관심) 지향적인 프로그래밍) - OOP(Object Oriented Programming, 객체지향 프로그래밍)를 보완하는 확장적인 개념 - Aspect(측면, 관점, 관심) : 핵심적인 비즈니스 로직은 아니지만 반드시 해야 하는 작업들ex. 버스, 지하철로 출·퇴근을 할 때 교통카드를 찍어야 함, 목적지에 정시에 도착하는 것이 중요하고 교통카드를 찍는 행위가 메인은 아님. - 관심의 분리(Separation of Concerns)를 통해 핵심관점(업무로직) + 횡단관점(트랜잭션, 로그, 보안, 인증 처리 등)으로 관심의 분리를 실현 - 장점 : 중복되는 코드 제거, 효율적인 유지 보수, 높은 ..

    [Spring] 차트

    6. 차트 6.1 구글 차트 6.1.1 https://google-developers.appspot.com/chart/ 6.1.2 사용 예 6.1.3 작업 순서 6.1.3.1 pom.xml에 라이브러리 추가com.googlecode.json-simplejson-simple1.1.1com.fasterxml.jackson.corejackson-databind2.9.4 6.1.3.2 자바스크립트를 이용하여 차트 작성에 필요한 JSON 데이터를 리턴받아 화면에 출력시킴 6.1.3.3 JSON 데이터의 형식{"cols": [ {"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"nu..

    [Spring] pdf 생성

    5. pdf 생성 5.1 itextpdf 라이브러리 - https://itextpdf.com- API : https://developers.itextpdf.com/examples-itext5- 한글 처리를 위해서는 폰트 정보가 필요함 5.2 실습 예제 5.2.1 pom.xml5.2.2 views/include/admin_menu.jsp5.2.3 controller.PdfController.java5.2.4 service.pdf.PdfService.java5.2.5 service.pdf.PdfServiceImpl.java

    [Spring] 상품관리

    4. 상품관리 4.1 파일 업로드 일반적인 방식 비동기적인 방식(ajax) 4.2 파일업로드 실습 예제 4.2.1 상품 테이블 4.2.2 pom.xml (라이브러리 추가) commons-fileupload commons-fileupload 1.3.3 org.imgscalr imgscalr-lib 4.2 4.2.3 servlet-context.xml (파일업로드 관련 설정) 4.2.4 menu.jsp 업로드 테스트 1) model.shop.ProductDTO.java2) model.member.dto.MemberDTO.java 2835

    [Spring] mybatis mapper interface

    3. mybatis mapper interface 3.1 mybatis에서 SQL query를 작성하는 방법 3.1.1 mapper xml 파일에 작성 MemoDAO.java (인터페이스) MemoDAOImpl.java (구현클래스) memoMapper.xml (mapper) 3.1.2 mapper xml 파일에 작성 MemoDAO.java : SQL 포함 3.2 spring02 프로젝트 생성 Spring Legacy Project → Spring MVC project - sample 프로젝트에서 설정파일 복사 : 1. pom.xml 2. resources 디렉토리 3. WEB-INF 디렉토리 3.3 실습예제 3.3.1 메모장 테이블 -- DROP TABLE Memo; CREATE TABLEMemo ( ..

    [Spring] mybatis 연동

    2. Spring과 mybatis의 연동 2.1 로깅툴 2.1.1 로깅툴을 사용하는 이유 System.out.println() 명령어는 IO 리소스를 많이 사용하여 시스템이 느려질 수 있음 로그를 파일로 저장하여 분석할 필요가 있음 2.1.2 로깅툴의 종류 commons-logging: 스프링 3에서 사용하던 로깅툴 log4j: 효율적인 메모리 관리로 그동안 많이 사용되었음 logback: log4j보다 성능이 더 우수하여 최근에 많이 사용되고 있음 SLF4J: logback을 사용하기 위한 인터페이스 2.1.3 SLF4J 설정방법 1. pom.xml의 slf4j-version을 1.7.25로 설정 1.8 5.1.4.RELEASE 1.9.2 1.7.25 2. pom.xml에 라이브러리 추가 ​ ​ ch...

    [Spring] 개발환경 설정

    1. Spring 개발환경 설정 1.1 Spring 개발환경 설정 1.1.1 스프링 개발 툴 1.1.1.1 이클립스 + 스프링 플러그인 1.1.1.2 STS(Spring Tool Suite - 이클립스에 스프링 플러그인이 포함된 버전) 1.1.1.3 IntelliJ 1.1.2 STS 다운로드 및 설치 STS 4 다운로드(윈도우 64bit용 다운로드) 압축을 해제한 후 eclipseec.exe 실행 에러가 발생할 경우 - 환경변수에 JAVA_HOME, path에 JAVA_HOME/bin 추가 주의: sts 설치디렉토리 및 workspace는 한글 이름이 들어간 디렉토리를 사용하지 말 것 1.1.3 STS 3 플러그인 추가 설치 STS 4부터는 Spring Legacy Project를 지원하지 않으므로 Ec..