Spring
[Spring] 스프링 시큐리티
18. 스프링 시큐리티 18.1 스프링 시큐리티의 개요 18.1.1 웹 보안의 3요소 18.1.1.1 인증(Authentication) : 애플리케이션의 작업을 수행할 수 있는 주체(사용자). 현재 접속중인 사용자가 누구인지 확인하는 과정18.1.1.2 권한 인가(Authorization) : 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되어 있는지 증명하는 과정. 현재 사용자가 특정 url에 접속할 권한이 있는지 검사하는 과정18.1.1.3 UI 처리 : 권한이 없는 사용자가 접근할 경우의 에러 화면 등을 보여주는 과정 18.1.2 스프링 시큐리티 개발자가 직접 처리하던 보안 처리 과정을 스프링 프레임웍에서 제공하는 스프링 시큐리티를 사용하여 사용권한 관리, 비밀번호 암호화, 회원가입 처리..
개발의 봄을 위한 STS(Spring Tool Suite) 설치!
개발의 봄을 위한 STS(Spring Tool Suite) 설치! STS는 Eclipse를 기반으로 Spring Framework를 보다 쉽게 사용할 수 있도록 도와주는 통합개발환경(Integrated Development Environment, IDE) 입니다. 지금부터 STS를 설치하는 방법을 알아볼까요? 1. STS 설치 사이트로 이동합니다.위의 링크를 클릭하거나 검색 엔진에 'sts download' 로 검색해서 해당 사이트로 이동합니다. 2. Spring Tool Suite 압축 해제새삼스럽게 왜 압축 푸는 장면까지 캡쳐한거냐? 라고 물어볼 수 있습니다.설치가 무지 간단해서 따로 설명할 부분이 없다는 건 아닙니다 3. 압축 파일에 들어있는 폴더 확인다운받은 압축 파일을 해제해보면 다음과 같은 폴..
[Spring] MS-SQL과의 연동
17. Spring과 SQL Server 연동 17.1 SQL Server 설치 17.1.1 SQL Server 2014 express edition 다운로드 및 설치 2018년 9월 현재 SQL Server의 최신 버전은 2017 버전이지만 Windows 7에는 설치가 되지 않으므로 2014 버전을 실습에 사용함 SQL Server 2017 버전은 리눅스에도 설치가 가능함 닷넷 프레임웍 3.5 서비스팩1 이 미리 설치되어 있어야 함 https://www.microsoft.com/ko-kr/download/details.aspx?id=42299 ExpressAndTools 64BIT\SQLEXPRWT_x64_KOR.exe 설치 새 SQL Server 독립 실행형 설치 또는 기존 설치에 추가 기본 설치 옵..
[Spring] Spring과 MongoDB 연동
16. Spring과 MongoDB 연동 16.1 NoSQLNot Only SQL : SQL만을 사용하지 않는 데이터베이스 관리 시스템 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소RDBMS처럼 고정된 스키마가 존재하지 않으며 join을 사용할 수 없음비정형 데이터를 저장하기 위해 최적화된 저장 방법을 제공함 현실 세계의 모든 데이터가 일정한 틀과 형태를 가지고 있지는 않다.대화, 채팅, 음악 등테이블을 만드는 것은 공통적인 속성들을 선택하는 작업 종류 - MongoDB, Cassandra, Redis 등 16.2 MongoDB 16.2.1 개요NoSQL로 분류되는 Cross Flatform Document 지향 데이터베이스 시스템전통적인 테이블-관계 기반의 RDBMS처럼 ..
[Spring] spring boot
15. spring boot 15.1 spring boot 2014년부터 개발되었으며 spring legacy project에 비해서 설정이 매우 간소화됨 WAS(tomcat)가 포함되어 있으므로 서버 설정이 간소화됨 아직 실무에서 많이 사용되지 않고 있지만 향후 spring legacy project를 대체하리라 예상됨 15.1.1 Spring Starter Project 생성 Name : 프로젝트 이름(spring03_boot) Artifact : spring03_boot Package : spring03 Boot Version : 최신 버전 2.1.3 SQL : MySQL. JDBC Mybatis 체크 Template Engines : Thymeleaf 체크 Web : Web 체크 15.1.2 Sp..
[Spring] 도로명 주소
14. 도로명 주소 가. 도로명 주소 사이트 - 행정자치부 http://www.juso.go.kr- 개발자센터에서 API 신청 가능 https://www.juso.go.kr/addrlink/devAddrLinkRequestWrite.do?returnFn=write&cntcMenu=URL 나. 우편번호, 주소 서비스 방법 1) 직접 구축2018년 8월 현재 건물 DB 다운로드 141MB, 압축풀면 1.72GBhttp://www.juso.go.kr/addlink/addressBuildDevNew.do?menu=mainJusoDb - 예를 들어 세종시 자료를 엑셀에서 읽어들임(구분자 : | )- 텍스트 파일을 엑셀로 읽어서 (구분자 | ) csv로 변환한 후 필요한 컬럼만 선택한 후 저장- 데이터를 impor..
[Spring] 게시판
13. 게시판 13.1 게시판의 주요 기능 13.1.1 기본 기능로그인 후 게시물 등록, 수정이 가능하도록 처리글쓰기(스마트에디터 적용, 태그 문자 처리, 공백 처리, 줄바꿈 처리)게시물 상세정보, 조회수 증가 처리게시물 수정게시물 삭제(delete 방식)게시물 삭제(update 방식)검색기능페이지 나누기 13.1.2 파일업로드(ajax)게시판에 파일 첨부첨부파일 목록, 다운로드, 삭제수정화면에서 새로운 파일 올리기 13.1.3 댓글 기능일반적인 방식으로 댓글 쓰기(RestController, REST 방식)$.ajax() 함수 호출하여 insert컨트롤러에서 뷰로 포워딩한 responseText를 html 태그에 출력컨트롤러에서 ArrayList를 json 형식으로 리턴받아 댓글 목록 출력(list_j..
[Spring] Smart Editor
12. Smart Editor 12.1 Smart Editor WYSIWYG Editor(위지윅 에디터, what you see is what you get)- 사용자가 현재 화면에서 보고 있는 내용과 동일한 html code를 생성하는 에디터- 네이버, 다음 에디터, CKEditor, SummerNote 등 12.2 CKEditor - http://ckeditor.com- 2018년 2월 현재 CKEditor 5 버전이 최신 버전이지만 아직 alpha 버전이고 한글 지원이 잘 되지 않아서 안정화된 버전인 CKEditor 4.8 버전으로 실습함- 이미지 업로드를 위해서는 별도의 작업이 필요함- 적용 예게시물 작성 ckeditor 홈페이지에서 Download다운로드 주소 : https://ckeditor...
[Spring] 이메일 보내기
11. 이메일 보내기 11.1 이메일 서비스 구축 방법 이메일 발송을 위해서는 메일 서버가 필요함 - 자체 구축- 포털사이트에서 제공하는 smtp(Simple Mail Transfer Protocol) server 활용- gmail의 경우 : 내 계정 - 로그인 및 보안 - 기기 활동 및 알림 - 보안 수준이 낮은 앱 허용 옵선을 사용으로 설정해야 함 11.2 실습예제 11.2.1 pom.xml에 라이브러리 추가빌드가 잘 안될 경우 스프링의 버전을 조정할 필요가 있음비슷한 이름의 라이브러리가 있으므로 artifactId를 정확히 확인하고 추가해야 함 11.2.2 root-context.xml에 메일 발송을 위한 bean 등록11.2.3 EmailDTO.java11.2.4 EmailService.java1..
[Spring] 파일 업로드(ajax 방식)
10. 파일 업로드(ajax 방식) 10.1 실습에제 10.1.1 menu.jsp10.1.2 util.MediaUtils.java10.1.3 util.UploadFileUtils.java- 파일 업로드를 할 때 파일의 이름이 중복되지 않도록 하기 위해 uuid를 사용했음- uuid는 16바이트 숫자로 구성되며 중복가능성이 없다고 보장할 수는 없으나 거의 중복이 없다고 봄- uuid는 밀리세컨드 + db 시퀀스로 구성되며 16바이트 (128비트), 32개의 16진수로 표현, 총 36개 문자(32개 문자와 4개의 하이픈)8-4-4-4-12예) 550e8400-e29b-41d4-a716-446655440000340, 282, 366, 920, 938, 463, 463, 374, 607, 431, 768, 21..
[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..