본문 바로가기

분류 전체보기19

HTTP CACHING(캐싱)이란? HTTP 캐싱(Caching)이란 웹페이지에서 자주 사용되는 리소스들을 저장하고 재사용하는 것을 뜻합니다. 이미 가지고 있는 리소스들을 재사용하기 때문에 성능 향상을 기대할 수 있고 이것은 곧 사용자의 UX와 서버 비용이 감소하므로 기업의 수익 개선을 의미할 수 있습니다. 캐싱은 웹페이지에서 자주 사용되는 리소스들을 저장하고 재사용하는 것이라고 했습니다. 그리하여 웹페이지 열람 시 필요한 리소스들을 매번 새롭게 서버 측에서 다운로드하는 것을 방지하는 것입니다. 캐싱을 하려면 캐시(cache)라고 부르는 리소스 저장소가 필요합니다. 캐시는 서버측보다는 클라이언트 측에 가까운 브라우저나 프록시 서버, 엣지 노드 등에 존재합니다. 누군가가 웹사이트에 접근하면 시스템은 캐시에 접근해 해당 웹사이트의 리소스가 저.. 2022. 3. 15.
TIKA를 이용한 서버측 파일 확장자 체크 ※ 많은 레퍼런스들을 참고하여 고민하며 구현한 코드지만 저 스스로도 취업준비생인 초보 개발자이기 때문에 코드 상의 문제 혹은 더 바람직한 우수사례들이 있을 수 있습니다. 코드 작성 시 참고 정도로 활용해주시고 문제나 개선 가능한 부분 발견 시 공유해주신다면 감사하겠습니다. 파일명의 String에서 확장자명을 추출하는 방식으로 타입 체크 시에는 위변조 위험에 쉽게 노출되기 때문에 Apache의 Tika를 이용해보겠습니다 Exception public class NotImageFileException extends RuntimeException { public NotImageFileException() { super(); } } 이미지 파일이 아닐 시 발생될 Custom Exception 입니다 Upload.. 2022. 3. 2.
AJAX를 이용한 REST 방식의 파일 업로드 ※ 많은 레퍼런스들을 참고하여 고민하며 구현한 코드지만 저 스스로도 취업준비생인 초보 개발자이기 때문에 코드 상의 문제 혹은 더 바람직한 우수사례들이 있을 수 있습니다. 코드 작성 시 참고 정도로 활용해주시고 문제나 개선 가능한 부분 발견 시 공유해주신다면 감사하겠습니다. 현재 진행중인 프로젝트에서 화면 이동 없이 modal 창을 띄워 글을 작성하고 수정할 수 있는 기능이 필요했습니다 화면을 다시 받아오지 않고 비동기식으로 파일을 업로드할 수 있는 제이쿼리를 이용한 AJAX 구현 코드입니다 JSP Image Submit form-footer 태그 안에 upload-button의 id를 가진 span이 인풋을 작동시키는 버튼 역할을 합니다 form 태그의 맨 아랫줄에 이미지 업로드용 input이 있습니다 .. 2022. 2. 22.
Tinymce editor 이미지 업로드 & 삽입하기 ※ 많은 레퍼런스들을 참고하여 고민하며 구현한 코드지만 저 스스로도 취업준비생인 초보 개발자이기 때문에 코드 상의 문제 혹은 더 바람직한 우수사례들이 있을 수 있습니다. 코드 작성 시 참고 정도로 활용해주시고 문제나 개선 가능한 부분 발견 시 공유해주신다면 감사하겠습니다. 저는 현재 Quora라는 미국의 질문/답변 소셜 웹사이트를 벤치마킹하여 프로젝트를 진행중에 있습니다 질문, 답변 작성 시 사진을 업로드하는 동시에 Editor 내부에 사진을 삽입해주는 기능이 필요해 tinymce와 jquery를 이용하여 구현 했습니다 작업 흐름은 대략 아래와 같습니다 이미지 업로드 버튼 클릭 -> input 태그 작동 -> input 태그에 이미지 추가 시 추가된 이미지 읽어오기 -> 읽어오기 성공 시 에디터에 이미지.. 2022. 2. 20.