분류 전체보기
-
[Servlet] 파일업로드시 현재날짜로 디렉토리 생성하기, UUID로 파일명 저장하기JAVA 2022. 7. 14. 00:41
서버에 파일업로드를 할 때, 자동으로 날짜별 폴더로 구분지어놓으면 관리하기 편할 것이다. 또한 파일명을 UUID로 지정한다면 중복파일명이 생기는 것도 방지할 수 있다. UUID(universally unique identifier)란? 범용고유식별자. 128비트의 숫자이며, 32자리의 16진수로 표현된다. 여기에 8-4-4-4-12 글자마다 하이픈을 집어넣어 5개의 그룹으로 구분한다. (ex. 550e8400-e29b-41d4-a716-446655440000) 세션ID를 설정할 때나, 중복되지 않는 고유한 ID값을 생성하고자 할 때 사용한다. 이렇게 파일업로드를 하면 자동으로 오늘날짜로 폴더가 생성되고, 파일명은 '날짜_UUID'로 저장하는 방법을 간단하게 구현해보았다. 입력받을 html파일 생성 .....
-
[Servlet] Scope 단위 (Application, Session, Request, Page)JAVA 2022. 7. 12. 18:00
서블릿에서는 데이터를 서블릿 속성에 등록해놓고 공유할 수 있는데, 이 때 공유범위로 4가지 Scope가 있다. Scope 설명 Application Scope 가장 긴 범위. WAS가 살아있는 동안 유지된다. Session Scope 하나의 세션동안 유지된다. 브라우저를 종료하면 파괴된다. Request Scope 하나의 요청이 일어나서 응답이 완료될 때까지 유지된다. Page Scope JSP에서 사용되고, 페이지단위에서만 유지된다. 가장 짧은 범위 1. Application scope 어플리케이션 스코프에 데이터를 올려두면 WAS(ex. Tomcat)이 살아있는 동안엔 계속 유지된다. 서블릿 어디서든 해당 데이터를 가져다 사용할 수 있다. ... @Override protected void Servi..
-
[Servlet] 포워딩(Forward)과 리다이렉트(Redirect)JAVA 2022. 7. 11. 22:53
현재 작업중인 페이지에서 다른 페이지로 이동할 때, 포워드 방식과 리다이렉트 2가지의 방법이 있다. 각각의 방식을 어떻게 구현하고, 둘은 어떤 차이가 있는지 알아보았다. 1. 포워딩 Forward 포워딩은 응답을 만들어 낼 웹컴포넌트에 요청을 위임하는 방식이다. 여기서 웹 컴포넌트는 서블릿이 될 수도 있고, JSP가 될 수도 있고, 웹 컴포넌트라면 포워딩할 수 있다. 상황을 예를들어, 웹에서 사용자가 버튼을 클릭하면 내용을 변경하여 화면에 보여주려고 할 때, 비즈니스 로직을 수행 후 View로 포워딩하면 View에서는 해당 비즈니스 데이터를 가지고 응답문서를 만들어 내보낸다. 포워딩방식의 가장 큰 특징은 원래의 url을 변경하지 않는다는 점이다. 응답이 끝날 때 까지 요청정보를 그대로 가지고 있는다. 따..
-
[HTML/CSS] 입력폼 유효성 검사에 필요한 input태그 pattern 속성ETC 2022. 7. 7. 04:18
과거엔 input태그에 양식을 작성하고, 데이터의 유효성을 검사하는 것은 JS로 해야했다. 이렇게 하면 만약 정규식을 쓰는 경우 입력 폼 하나하나마다의 정규식이 다르기 때문에 각각의 로직을 만들어야 한다. 코드량이 너무 많아지는게 맘에안든다. 이시대에 이렇게까지 해야한다고...?라는 생각이 들어 검색을 해보니, 역시나 이렇게 하지 않아도 된다. HTML5부터 input태그에 pattern속성을 사용할 수 있고, 여기에 정규식을 입력하면 자바스크립트로 유효성검사를 하지 않아도 자동으로 체크해준다. 추가로 maxLength, minLength 속성으로 최소, 최대 길이를 지정할 수도 있다. 이 속성을 적용하면 지정한 길이 밖으로는 입력이 되지 않는다. 예시로 전화번호 입력폼을 가져왔다. 해당 정규식은 숫자만..
-
패스워드 암호화(해시, 솔트, 키스트레칭)ETC 2022. 6. 28. 03:01
파이널 프로젝트 진행 중, 회원의 패스워드는 절대로 원본 자체를 DB에 저장하면 안된다는 강사님의 말씀을 듣고 암호화에 대해 공부해봤다. 일반적으로 패스워드 암호화는 해시함수를 통해 구현한다. 여기서 해싱이란? 이렇게 원본 텍스트를 알아볼 수 없는 문자열로 변환하는 작업을 의미한다. 엄밀히 말하면, 해싱과 암호화는 다르다. 암호화는 이 과정에서 복호화(encryption, decryption)을 거친다. 일반적으로 많이 사용되는 단방향 해시함수와 암호화의 가장 큰 차이점은, 단방향 해시함수는 원본 문자열의 복원이 불가하지만, 암호화는 복호화키를 사용해 평문으로 복원이 가능하다는 점이다. 예를들어, 1234라는 암호를 xzetjiosz#$7895dsfkjl; 라는 문자열로 변환했다면, 단방향 해시함수는 이..
-
이클립스 메이븐 프로젝트 초기세팅JAVA 2022. 6. 27. 00:56
New - Project - Maven - Maven Project 선택 후 Next 클릭 기존 워크스페이스 경로를 사용할 것이라면 그대로 진행하면 된다. 아키타입을 설정하는 창이다. 기본으로 quickstart로 선택되어있다. webapp 선택 후 next Group Id에 자신이 설정하고자하는 프로젝트 도메인을 설정, Artifact Id는 프로젝트폴더의 이름을 지정한다. Package에 설정한 artifact id가 자동으로 하위 패키지로 설정되는데, 따로 이름을 지정해준다. 첫 프로젝트를 생성하면 빌드하는데 약간의 시간이 소요된다. 오류표시가 뜨는데, 설정이 아직 덜 돼서 그런 것이니 마저 설정해주면 된다. 1. pom.xml파일 설정 pom.xml파일 클릭 후 open with - other E..
-
이클립스에서 Maven 프로젝트 생성하고 WAS 올리기JAVA 2022. 6. 21. 11:20
New Project - Maven - Maven Project를 선택 Catalog를 Internal로 변경후, quickstart를 선택한다. 기본으로 선택되어있다. 그룹 아이디, 아티팩트 아이디, 패키지명을 원하는 이름으로 설정한 후 finish를 누르면 메이븐 프로젝트가 생성된다. [Windows] - [Show view] 설정 Package Explorer, Type Hierarchy, Progress, Problems, Console, Servers창을 띄워놓는다. 이클립스에 WAS 올리기 (Tomcat) tomcat9, tomcat(10버전)을 둘 다 설치해둔다. > scoop install tomcat9 > scoop install tomcat Servers탭에서 New를 누르고, Apac..
-
Eclipse JEE 버전 환경설정JAVA 2022. 6. 21. 10:26
설치한 JEE 버전 이클립스 실행 후, 워크스페이스 경로를 지정한다. lombok 라이브러리 설치하기 https://projectlombok.org/setup/eclipse Eclipse, Spring Tool Suite, (Red Hat) JBoss Developer Studio, MyEclipse projectlombok.org 로 들어가서 https://projectlombok.org/p2 복사 후 이클립스에서 [help] - [install new software] 클릭 상단에 주소 복사 후 롬복에 체크, Next 클릭 약관에 동의하라는 창이 나오면 동의하고, trust하라는 창이 뜨면 체크 후 Trust selected 클릭 설치가 완료되면, [help] - [About Eclipse IDE] ..