일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CPU
- mvc 구성요소
- spring security 설정
- 자바의정석
- 오버라이딩
- 다형성
- 프로그래머스
- mvc 동작
- 자바의 정석
- hackerrank
- SQL Mapper
- 입출력
- 캡슐화
- 객체지향
- 멀티태스킹
- over()
- 중단점 활용
- 리눅스
- 개발자도구 활용
- 오블완
- java
- 혼공얄코
- 티스토리챌린지
- 쿠키
- sec태그
- 오버로딩
- 멀티프로세싱
- 개발자도구 breakpoint
- 개발자도구 설정
- spring security
- Today
- Total
목록분류 전체보기 (127)
쉽게 쉽게

▤ 목차1. MariaDB JDBC 버전 확인 및 다운로드이클립스에 MariaDB를 연동하기 위해서는 MariaDB JDBC (MariaDB_Java_Client.jar)가 필요하다.자바 버전에 따른 JDBC 버전이 다르기 때문에 알맞은 JDBC를 다운로드할 필요가 있다.https://mariadb.com/kb/en/mariadb-connector-j-releases/ List of MariaDB Connector/J ReleasesA list of all Connector/J releasesmariadb.com이 링크를 통해 자바버전에 맞는 JDBC를 알 수 있다.버전을 확인 후 아래의 링크를 통해 JDBC를 다운받을 수 있다.https://mvnrepository.com/artifact/org.mar..

▤ 목차1. 프로젝트 외부에 jar 추가1. Build Path -> Configure Build Path -> Libaries -> Add External JARS... 외부에서 가져온 jar파일 등록을 성공하면 아래처럼 Referenced Libraries에 추가한 jar 파일이 나타나게 된다.다만 경로를 보면 로컬경로(절대경로)라는 걸 알 수 있다. (즉 내 컴퓨터 저장경로)만약 이 프로젝트를 다른 환경에서 사용해야 한다면 프로젝트에 jar파일이 포함되지않아 사용에 어려움이 있을 수 있다.이를 해결하기 위해서는 프로젝트 내부에 jar 파일을 추가할 필요가 있다.2. 프로젝트 내부에 jar 추가1. 프로젝트 내부의 WEB-INF 하위 경로에 lib 폴더를 만들어 사용한다.2. lib 폴더에 등록을 ..
▤ 목차1. 이슈공통적으로 사용하는 CommonService에서 모든 컨트롤러에서 사용될 public static void 메서드가 하나 있을 때, 이 static void 필드에 @Autowired된 빈을 사용해야 하는 상황이 발생했다.그러나 그냥 static에 @Autowired된 빈을 사용하면 NullpointerException이 발생하게 된다.@Servicepublic class CommonService { @Autowired private MyBean myBean; public static void commonMethod() { myBean.doSomething(); // myBean이 주입되지 않으므로 NPE 발생 }}그 이유는 @Autowired는 인스..

▤ 목차1. CSS로 구현1. css로 구현 text-overflow을 사용하기 위한 조건text-overflow 속성은 블록 형태인 경우에만 적용된다.width 또는 height가 고정적이어야 한다.overflow: hidden; 을 사용해 영역을 감춰야 한다.아래줄로 내려가는 것을 막기 위해 white-space: nowrap 등이 필요하다. text-overflow 적용을 하려면 가로넓이가 있어야 하기 때문에 width를 적용해 줬다.한 줄일 때 말 줄이기를 하고 싶으면 white-space: nowrap이 적용이 되어야 한다.아래는 nowrap 적용 시 표현되는 예시다.해당 속성이 없으면 자동으로 글자가 다음줄로 넘어가기 때문에 이러한 상황을 방지해야 한다.2줄 이상일 경우 white-space ..

▤ 목차1. 윈도우 함수란?윈도우함수(Window Function)란 행과 행 간의 관계를 정의하기 위해 제공되는 함수를 의미한다. 집계함수(AVG, SUM, COUNT) 혹은 윈도우 함수 전용 함수(ROW NUMBER, LEAD, LAG)로 분류된다. 윈도우 함수를 통해 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.1. 윈도우 함수의 구조Window Function(함수_적용_열) OVER (PARTITION BY 그룹열 ORDER BY 순서열)-- Window Function : 순위함수(RANK, DENSE_RANK 등)나 집계함수(SUM, MAX 등)-- PARTION BY : 소그룹으로 분류 -- ORDER BY : 분류된 소그룹 정렬-- 순서열 : 정렬 기준 행 설정2. 윈도우 함수 종..

▤ 목차1. 이슈SELECT문 조회한 결과에 대한 COUNT()들을 같이 출력할 필요성이 생겼다.다만 COUNT 조건이 각기 달라서 이를 해결하기 위해 방안을 찾아봤다. 1. SELECT문 조회 쿼리ACT_TIME 테이블에는 활동시간과 종료시간 정보가, REPORT_CONTENT 테이블에는 보고서 타입이 존재한다.이를 JOIN하여 유저별로 정보를 가져왔을 때, 아래와 같은 조회결과가 나오게 된다.이때, A타입의 보고서 수 , B타입의 보고서 수의 통계를 결과와 함께 추출해야 한다.SELECT RC.CONTENT_TYPE, /* 보고서 타입 (A, B 타입존재) */ AT.ACT_DATE, /* 활동일 */ AT.START_TIME, /* 활동시간 */ AT.END_TIME /* 종료시간 */..

▤ 목차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..