일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SQL Mapper
- hackerrank
- 쿠키
- 오버로딩
- 객체지향
- 붕대 감기 자바
- 자바의 정석
- 다형성
- over()
- spring security 설정
- break 사용법
- java
- 붕대 감기
- 멀티프로세싱
- 멀티태스킹
- 오버라이딩
- 입출력
- 캡슐화
- 중첩 break
- 프로그래머스
- 티스토리챌린지
- 자바의정석
- 리눅스
- 오블완
- contiune
- continue 사용법
- 프로그래머스 붕대 감기
- 혼공얄코
- spring security
- CPU
- Today
- Total
목록전체 글 (121)
쉽게 쉽게
▤ 목차1. 스케줄러 설정스케줄러는 일정주기마다 반복할 작업이 있을 경우에 사용하면 편리하다.스케줄러를 구현하기 위해서는 몇 가지 설정이 필요하다.xml에 설정을 추가해야 하는데 보통 dispatcher-servlet.xml에 추가하면 된다.(xml 설정을 다루는 파일은 각기 다를 수 있다.) 1. Namespaces에서 task 추가Namespaces 중 task를 추가해주면 된다.추가가 성공하면 아래와 같은 설정이 추가되며 태그를 사용할 수 있게 된다.2. 스케줄러에 사용될 애노테이션 활성화annotation-driven 설정 추가하여 @Schedule과 @Async 애노테이션을 활성화 시키면 된다.단 스레드 풀의 크기나 다른 고급 설정을 제어하고 싶다면 를 추가하여 스케줄러를 명시적으로 정의해야..
1. 이슈textarea로 저장한 값을 출력 시 모든 글내용이 한 줄로 붙어서 나오는 경우를 볼 수 있다.이런 현상의 원인은 textarea의 개행문자가 \r\n, \n으로 되어있는데 웹에서는 태그를 사용하기에 줄바꿈이 안되는 것이다.이를 해결할 다양한 방안을 알아봤다.2. textarea 개행처리1. JSTL의 사용// 저장한 값대로 출력하기 를 사용하여 저장한 값 그대로 출력할 수 있다.은 escaperXml 속성을 가지고 있어 문자를 그대로 노출하게 만들어 준다. (특수문자를 문자 엔티티 코드로 변환)의 장점을 더 설명하면 보안성이 뛰어나다는 점이 있다.Cross-site Scripting 공격은 스크립트를 주입시켜서 사이트를 침입한다.아래와 같이 넣었을떄 EL태그는 alert창이 동작하지만 은..
1. 이슈게시글 내용 저장 시 특수문자에 대한 처리가 부족함을 느꼈다.와 같은 특수문자들을 그대로 출력 시 이를 태그로 인식하여 원치 않는 형태로 출력되거나 했다. (빈칸이나 공백이 되거나...)또한 XSS 공격에 취약할 것이란 생각이 들었고 이를 대체문자로 치환하여 저장하는 방식을 알아봤다.2. 특수문자 치환//특수문자 -> escape 치환function escapeHtml( str ) { if (str == null) { return ""; } str = str.replace(//g,">"); str = str.replace(/\"/g,"""); str = str.replace(/\'/g,"'"); str = str.replace(/\n/g,""); ..
1. 이슈게시판 글 조회수를 카운트하면서 동일한 사용자가 새로고침만 해도 중복으로 조회수가 측정되는 상황이 있었다.이를 방지하기 위해 여러 방안을 찾아봤다.2. 해결방안조회수 중복방지를 위한 여러 방안들을 정리해 봤다 방안장점단점쿠키서버의 공간을 절약 사용자가 쿠키를 삭제시 중복가능 (조작가능)다른 브라우저 사용시 중복가능 IP(MAC주소)조작이 불가능 여러 사용자가 같은 IP를 사용시 중복가능 (중복 IP)다른 기기라면 중복가능로그인로그인한 사용자의 정확한 조회수 체크가능비로그인자는 정확한 카운트가 불가능세션서버에 정보를 저장하기에 보안에 좋음서버의 리소스를 사용하기에 부하가 증가할 수 있음이 중 단순한 조회수 중복방지를 위한 것이기에 쿠키를 이용하여 구현했다.3. 구현private void readC..
리눅스 서버 시간이 한국 시간으로 설정되지 않는 경우가 있다. 이런 경우 크론탭 등의 스케줄 작업을 등록하면 원하는 시간에 동작하지 않는 문제가 발생할 수 있다.이를 해결하기 위해 리눅스에서 서버 날짜와 시간 및 타임존을 확인하고 한국 시간으로 변경하는 방법에 대해 알아보려고 한다.1. 리눅스 서버시간 확인date 명령어를 통해 서버의 현재 시간이 조회된다.현재 KST 타임존(한국 표준시)으로 설정되어 있다.timedatectl 명령어를 통해 좀 더 상세한 시간정보를 얻을 수 있다.Local time은 현재 설정된 지역 시간 표시Universal time의 경우 협정 세계시 표시RTC time은 하드웨어 시간 표시Time zone은 서버에 지정된 국가 표시System clock synchronized는 ..
이미지 파일 업로드 시 썸네일도 같이 볼 수 있는 Javascript 코드를 구현했다. 1. 이미지 파일 업로드 HTML 속성 중 accept는 어떤 형식의 파일을 허용할 것인지 정해주는 속성이다.audio/*, video/*, image/* 처럼 지정하거나. gif,. jpg,. png처럼 파일 확장자로 지정하는 것도 가능하다.만약 이미지가 여러개라면 multiple 속성을 추가해주면 된다.2. JS 코드 구현이미지 썸네일 1개function setThumbnail(event) { //FileReader 객체생성 var reader = new FileReader(); //파일읽는것을 성공했을때 실행 reader.onload = functio..
2023.03.26 - [개발공부/CS] - 쿠키, 세션, 토큰, 캐시 쿠키, 세션, 토큰, 캐시'혼자 공부하는 얄팍한 코딩 지식'을 읽으며 추가적으로 공부한 내용을 정리한 글입니다. 1. 쿠키와 세션을 사용하는 이유 웹 사이트를 이용할 때, HTTP 프로토콜은 클라이언트가 요청(Request)을 서minsu092274.tistory.com이전에 포스팅했던 글에 추가적으로 JavaScript에서 쿠키를 사용하는 방법에 대해 정리하고자 한다.1. 쿠키(Cookie)란?웹 사이트를 이용할 때, HTTP 프로토콜은 클라이언트가 요청(Request)을 서버에 보내고, 서버는 클라이언트에게 적절한 응답(Response)을 주고 연결(Connection)을 끊는 특성이 있다. (HTTP는 웹에서 이루어지는 모든 데..
"오늘 하루동안 보지 않기" 설정을 포함하고 있는 팝업을 구현하고자 한다.js에서 쿠키를 다루는 방법을 자세히 알아보고자 한다. 1. 팝업창 구현위와같은 간단한 공지창을 구현하는 코드입니다. [시스템 공지] 시스템 공지입니다. 시스템 공지 내용입니다. 이용에 불편을 드려 대단히 죄송합니다.   오늘 하루동안 보지 않기 닫기 2. JS 쿠키 설정아래는 "오늘 하루동안 보지 않기" 기능을 쿠키로 구현한 코드입니다.쿠키 파라미터 정리1. Name과 Value쿠키는 이름-값 쌍의 형태로 쿠키를 생성하기 위해서는 반드시 이름과 ..
1. File클래스란java.io 패키지에서 제공하는 File 클래스는 입출력에 필요한 파일 및 디렉터리에 관한 정보를 다를 수 있다. File 클래스는 파일과 디렉터리의 접근 권한, 생성된 시간, 마지막 수정 일자, 크기, 경로 새로운 파일과 디렉터리 생성 및 삭제, 이름 변경 등의 조작 메드를 가지고 있다.2. File 생성자 File(String path)주어진 문자열 경로를 갖는 File객체 생성ex) File dir = new File( "C:\\testDir\\test.txt" );File(String dir, String name)dir와 name문자열을 연결한 문자열로 경로를 생성하여 File객체를 생성첫번째 매개변수에 디렉터리 경로를 넣고, 그 하위 파일명을 지정하여 생성ex) File ..
1. 이슈 jQuery를 사용하다 보면 ~로 시작되는 선택자들을 불러올 필요가 생기기도 한다. 이를 알아보고자 한다. 2. ~로 시작하는 선택자 호출 위와 같은 name값을 가진 input 값들이 있다. 이를 호출하기 위해서 $("input[name=user_file_path]").val() 처럼 해야 한다. 단 이걸 개수만큼 n번 반복하기는 번거롭기 때문에 공통적으로 user로 시작하는 name값을 호출하면 된다. $("input[name^=user]").val(); 이외에도 class, id 값도 동일한 방식으로 호출할 수 있다. $("[class^='user']").val(); $("[id^='user']").val(); ~로 시작하는 호출방식 말고도 다양한 호출방식도 존재한다. element [속..