게시글의 예약번호 첫 글자가 3인지 아닌지를 charAt을 사용해 판별하던 중 문제가 발생했다. 이를 해결하기 위해 java.lang.String 클래스의 substring() 메서드를 활용하여 예약번호 첫 글자를 잘라내고, 비교 연산자를 사용해 3인지 아닌지를 검증했다. 이 과정에서 ==와 eq의 사용에 대한 고민이 있었으나, GPT의 조언을 따라 특정 상황에서 둘 중 어느 것을 사용해도 큰 차이가 없음을 알게 되었다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 게시글의 예약번호의 첫 글자가 3일 경우와 아닐 경우를 charAt을 사용해 구분해주었다. charAt을 사용해 구분하는 것이 잘못된 방법이었는지 예약번호의 첫 글자가 3임에도 계속 eq쪽 jstl이 아닌 ne쪽 jstl을 탔다. 그래..
Tomcat server의 기본 업로드 용량 제한이 원인이었으며, 이를 server.xml의 maxPostSize 값을 byte 단위로 변경하여 해결했다. 프로젝트의 게시판에서 다양한 종류의 파일을 업로드할 수 있도록 용량 제한을 50MB로 설정했다. ✨시작하며 전자정부 프레임워크에서 일정 용량 이상의 첨부파일을 게시판에 업로드 시 콘솔에서 500에러가 발생하여 분석을 시작했다. the request was rejected because its size (2498254) exceeds the configured maximum (2097152) 콘솔의 가장 마지막 줄에서 발견한 Caused by: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceeded..
lucy-xss-servlet-filter와 multipartFilter 적용 후 이슈가 발생했다. CMS에서 Ckeditor를 통해 작성한 글에서 태그가 그대로 노출되는 현상을 발견하고, lucy-xss-servlet-filter-rule.xml의 url-rule-set 수정을 시도했으나 실패했다. 이후 XssPreventer.unescape를 이용한 특수문자 역치환 작업을 수행하여 문제를 해결했다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 lucy-xss-servlet-filter와 multipartFilter를 적용한 후, 다시 기능 개발을 하며 테스트 및 수행을 하고 있었다. CMS에서 Ckeditor를 통해 글을 작성한 다음 Reservation Detail 페이지에서 태그가 그대로 ..
Board Name을 확인하고 비회원을 처리하는 과정에서 문자열 비교를 위해 == 연산자를 사용했으나, 에러가 발생하고 말았다. 문자열을 비교할 때는 == 연산자 대신 equals 메서드를 사용해야 한다는 것을 알게 되었다. == 연산자는 객체의 주소 값을 비교하는 반면, equals 메서드는 객체의 값 자체를 비교하는 차이가 있다. ✨시작하며 전자정부 프레임워크 기반 프로젝트 중 게시판 Board Controller에서 Board Name이 지정한 값과 동일할 경우 해당 게시판에서 session값 검증을 통해 비회원을 따로 처리하는 조건문을 만들었다. 그런데 여기서 == 연산자를 사용하여 문자열을 비교하는 바람에 비회원일 경우에도 if문에 걸리지 않고 게시판 화면으로 정상적으로 넘어가버렸다. 기존의 코..
filterMultipartResolver를 거치면서 lucy 필터가 적용되지 않아 web.xml에 multipartFilter를 추가하였으나, 이로 인해 첨부파일 업로드 시 500 에러가 발생하였다. 이를 해결하기 위해 server.xml 및 context.xml을 수정하였다. server.xml은 서버의 실행 시점에 동작을 준비하는 xml 문서로, context-path 설정이 가능하다. 반면 context.xml은 웹 어플리케이션의 지원을 명시해주는 파일로, 웹을 읽어 실행하고 DB를 연결하는 기능을 수행한다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 lucy-xss-servlet-filter를 사용해 XSS 취약점을 조치 하는데 filterMultipartResolver를 거치게 되면 ..
JSP에서 페이스북 피드 게시물 정보를 크롤링하는 방법을 알아보자. 페이스북 개발자 계정과 페이스북 앱을 준비하고, 그래프 API를 사용해 액세스 토큰을 발급받는 과정을 거친다. 단기, 장기, 영구 액세스 토큰의 발급과 연장 방법에 대해 설명하고, JavaScript 코드를 통해 사용자의 게시글을 불러오는 방법을 제공한다. ✨시작하며 업무 중 JSP에서 페이스북 피드 게시물 정보를 크롤링하는 작업이 필요해졌다. 해당 기능 구현을 위해서는 페이스북 개발자 계정과 페이스북 앱이 필요하다. API 연동을 위한 사전 준비는 아래를 읽어보고 참고하면 된다. 사전 준비 API를 이용하기 위해서는 1. 페이스북 개발자 계정과 2. 페이스북 앱이 필요하다. 먼저 Meta for Developers에 접속한 후 기존 페..
JSP를 이용해 인스타그램 피드를 크롤링하는 방법에 대한 디테일한 가이드. 페이스북 개발자 계정과 페이스북 앱, 인스타그램 프로페셔널 혹은 비즈니스 계정이 필요하며 API 연동을 위한 사전 준비에 대한 설명을 시작으로, 앱 생성 및 설정, 플랫폼 추가, API 설정 등의 과정을 차근차근 안내한다. 단기 액세스 토큰을 발급받아 장기 액세스 토큰으로 변환하는 방법, 사용자 프로필과 미디어를 가져오는 방법, 게시글 불러오기 등 세부적인 과정까지 자세히 설명되어 있다. 본 가이드를 따라하면 JSP에서 인스타그램 피드 게시물 정보를 효과적으로 크롤링할 수 있다. ✨시작하며 업무 중 JSP에서 인스타그램 피드 게시물 정보를 크롤링하는 작업이 필요해졌다. 해당 기능 구현을 위해서는 페이스북 개발자 계정과 페이스북 앱..