WEB

    Spring 총정리 1.Spring에 기반이 되는 Servlet

    Spring FrameWork를 설명하기 전 Servlet을 먼저 설명하겠습니다. Servlet이라 하면 3가지를 알아두면 좋아요. Url-Mapping, Hierarchy, Life-cycle입니다. 하나씩 알아볼게요! Url-Mapping 1:1 servlet-mapping 브라우저에서 ws에 요청하는 주소와 해당 주소의 처리 로직을 1:1 매핑한다 문제 : 너무 많은 mapping으로 코드가 복잡해진다. Life-Cycle (생명주기) HttpServlet -> OCP(Open Closed Programming) 초기화 -> 서비스 -> 종료 init() service() distroy() doGet() doPost() doDelete() Hierarchy 계층구조 HttpServelt을 상속받아 ..

    Spring Setting 하기

    Window - Eclipse Marketplace - sts 검색 새로운 Spring 프로젝트를 생성합니다. 프로젝트 오른쪽 클릭 - properties - Project Facets 적용해주시고, pon.xml 들어갑니다. 체크한 부분 변경 해주시면 됩니다. 스크롤 밑으로 쭉 내려서 plugin도 바꿔줄게요~ 이렇게 하고 저장하면 메이븐이 열심히 다운로드합니다. 이제 마바티스, 스프링 연결 관련, 데이터베이스 등 라이브러리 다운로드하고 설정해 줄게요. 일단, 저는 spring 설정파일을 한 번에 보고 싶기 때문에 web.xml 에서 이 부분을 폴더에 넣어 주었어요 그러면 아래 그림처럼 같이 관리할 수 있습니다! 그리고 중요한것은 filter를 이용해서 인코딩을 해줍니다. web.xml에 작성해주시면 ..

    Eclipse Maven Setting 설치부터 설정까지

    설치할 것 1. JDK 2. apache tomcat * - jdk - javac, jheap 등 - jre - Java Class Library JDK 설치 많은 공공기관과 프로젝트에서 1.8을 많이 사용한다고 추세라고 하기 때문에 JDK8 (jdk1.8)을 다운 받는다. (프로젝트마다 다르게 다운받으면 된다!) https://www.oracle.com/java/technologies/javase-downloads.html 1. 내 PC 오른쪽 버튼 - 속성 - 고급 시스템 설정 - 환경변수 - 시스템변수에서 새로 만들기 2. Path - 편집 - 새로만들기 %JAVA_HOME%\bin - 확인 : cmd창 java -version 버전이 출력되면 성공 apache tomcat 설치 http://tom..

    파일 API를 이용한 미리보기 구현

    2020/05/16 - [WEB/Spring] - 이미지 업로드 (Spring+Ajax) 이미지 업로드 (Spring+Ajax) Hyper 프로젝트를 하면서 과정 중 어려워했던 파일 업로드에 대해서 다시 공부하게 되었다. commons-fileupload를 사용하였고 pom.xml에 추가해줘야 한다. Ajax로 구현해야 하니 Controller에 @ResponseBody를 붙. aejeong.com 이어서 미리보기를 구현하겠습니다. var upload = document.querySelector('#file'); upload.addEventListener('change',function (e) { var get_file = e.target.files; var selected_file = upload.fi..

    이미지 업로드 (Spring+Ajax)

    Hyper 프로젝트를 하면서 과정 중 어려워했던 파일 업로드에 대해서 다시 공부하게 되었다. commons-fileupload를 사용하였고 pom.xml에 추가해줘야 한다. Ajax로 구현해야 하니 Controller에 @ResponseBody를 붙여줘야 한다 이거 또한 사용하려면 pom.xml에 jackson-mapper를 추가해줘야 한다. pom.xml에 추가해야 할 것. (mvnrepository.com) 1. commons-fileupload 2. jackson-mapper 제일 먼저 파일 업로드를 구현 후 미리보기를 하겠다. 1. spring 폴더에서 xxx-context.xml 에 파일 리졸버를 지정해줘야 한다. + application / servlet -context의 차이 더보기 이 두 ..

    DataTable Ajax 사용하기

    사용자 전체 조회를 해보았다. 처음 사용해봐서 삽질을 조금 했는데 재미있었고, 무엇보다 데이터를 쉽게 표현할 수 있고 기능이 많은 라이브러리라서 유익했다. 먼저 사용하려면 스크립트를 포함해줘야 한다. www.cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css www.cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js HTML 코드 사용자ID 사용자 이름 전화번호 E-mail 권한 JavaScript 코드 $(document).ready(function() { $("#deviceTable").DataTable({ "pageLength": 10, ajax:{ url:"./userAll.do", type:"GET"..

    세션 저장소

    1.톰캣 세션을 사용한다. - 기본 선택되는 방식이다. - WAS에 저장되는데 2대이상의 WAS로 구동되는 환경에서는 추가 설정이 필요하다. 2.MySQL과 같은 데이터베이스를 세션 저장소로 사용한다. - 가장 쉬운 방법이다. - 로그인 요청시 DB IO가 발생할 수 있다. 3.Redis 같은 메모리 DB를 세션 저장소로 이용한다. 사용료를 지불해야한다! 서비스가 커질때 고려! 'org.spirngframework.session:spring-session-jdbc' 를 gradle에 등록해주고 application.prorperties에 spring.session.store-type=jdbc 만 등록하주면 jpa가 세션테이블을 자동으로 생성하여 세션저장소가 지정된다!

    Java Enum이란?

    Enum을 통해 얻는 기본적인 장점 문자열과 비교해, IDE의 지원을 받을 수 있다. 자동완성, 오타검증, 텍스트 리팩토링 등 허용 가능한 갑들을 제한할 수 있다. 리팩토링시 변경 범위가 최소하 된다. 내용의 추가가 필요해도, Enum코드외에 수정할 필요가 없다. Java Enum인 경우 int값이 아니라 완전한 기능을 가진 클래스이다! 우선 enum타입으로 클래스를 생성해야한다 이제 상수를 선언하면 되는데, 관례적으로 모두 대문자로 작성한다. Entity클래스에 선언해주기 위해서 String이 아닌 enum을 선언한다. JPA를 사용하므로 @Enumerated(EnumType.SPRING)을 선언하면 Enum필드가 테이블에 저장시 숫자형이 아닌, Enum의 이름이 저장된다. 여기서는 GUEST,USER..

    Spring Security , OAuth2.0으로 구글 로그인 구현 1

    스프링 시큐리티는 막강한 인증과 인가 기능을 가진 스프링 프레임워크이다. 인증이란, 보호된 리소스에 접근한 대상에 대해 누구인지, 작업을 수행해도 되는지 확인하는 과정이다. 인가란, 인증 이후에 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정이다. 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자가 일일이 보안 관련 로직을 작성하지 않아도 된다. 구글 로그인 기능 구현해보자! https://console.cloud.google.com/ 로 접속해서 새로운 프로젝트를 생성한다. 프로젝트를 선택한 후 API 및 서비스 -> 사용자 인증 정보 OAuth 클라이언트 ID 클릭! 동의 화면 중 외부/내부가 있는데 외부를 클릭한다. 애플리케이션 이름 : 사용자에게 노출될 애플리케이..

    템플릿 엔진

    지정된 템플릿 양식과 데이터가 합쳐져 HTML문서를 출력하는 소프트웨어 서버 템플릿 엔진 - JSP(명확하게는 아님) ..등 클라이언트 템플릿 엔진 - React,Vue ...등 영역과 작동하는 방식이 다르다. 자바스크립트는 브라우저 위에서 작동 - 브라우저에서 작동될 때는 서버 템플릿 엔진이 제어할 수 없다. - 서버에서는 Json혹은 xml형식의 테이터만 전달하고 클라이언트에서 조립한다.

    JPA Auditing 으로 생성/수정시간 자동화하기

    교육과정 동안 언제 만들어졌는지, 언제 수정되었는지에 따른 유지보수 중요성을 배우진 못했다. 이제 모델링할 때 고려해서 짜야겠군... 같은 내용인데 매번 DB에 insert/update을 하기에는 코드가 여기저기 들어가게 되니까 생성될 때 같이 생성되면 편리하다! domain 폴더에 BaseTimeEntity클래스를 만들어주고 모든 Entity의 상위 클래스가 되게 하면 된다. 1. @MappedSpuerclass 를 이용하면 JPA Entity클래스들이 BaseTimeEntity를 상속할 경우 필드들도 컬럼으로 인식하도록 한다. 2. @EntityListeners(AuditingEntityListener.class)로 해당 클래스에 Auditing기능을 포함한다. 3. @CreatedDate priva..

    람다식 (stream,map,collect)

    //postRepository에서 넘어온 결과를 postsRepository.findAllDesc().stream() //Stream을 통해 map으로 new PostsListResponseDto 에 매핑 해준다. //PostsListResponseDto에서는 파라미터로 postRepository에서 넘어온 결과 Entity posts를 받고 있으므로 //결과적으로 .map(posts -> new PostsListResponseDto(posts)) .map(PostsListResponseDto::new) //collect를 사용해서 List로 변환한다. .collect(Collectors.toList()); stream이라는 게 있는 것 조차 몰라서 공부하면서 혼란스러웠다 람다식을 배운 적이 없으니. ㅠ..