멍청멍청기록/프로젝트 일지 29

기본 생성자 없이 직렬화하기 feat. java Object to JSON

현재 개인 프로젝트를 진행하기 위해서 인강을 보면서 약간 의문점이 남아서 해당 부분을 기록합니다. 테스트케이스를 작성할 때 Object형태를 JSON형식으로 RequestBody에 요청하는 케이스가 생겼습니다. 아래는 위의 설명을 코드화한 것입니다. @Test @DisplayName("/posts 요청") void test() throws Exception { PostCreate request = PostCreate.builder() // 빌더패턴을 이용했습니다. .title("제목입니다.") .content("내용입니다.") .build(); ObjectMapper objectMapper = new ObjectMapper(); // 오브젝트메퍼를 이용해 직렬화합니다. String json = objec..

프로젝트] java.lang.UnsupportedClassVersionError: org/apache/commons/io/output/DeferredFileOutputStream : Unsupported major.minor version 52.0 에러 해결.

HTTP Status 500 – Internal Server Error Type Exception Report Message An exception occurred processing [/se2/sample/photo_uploader/file_uploader.jsp] at line [26] Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.apache.jasper.JasperException: An exception occurred processing [/se2/sample/photo_uploader/file_uploader.jsp] at l..

프로젝트] session 정보 확인하기.

Enumeration enumSession = session.getAttributeNames(); while(enumSession.hasMoreElements()){ String getse = enumSession.nextElement()+""; System.out.println("===> session : "+getse+" : " + (String)session.getAttribute(getse)); } (기존에는 session.getValue()를 사용했으나 이 부분 java5 이후 삭제 됐다.) if(session.getAttribute("TA_MANAGER_NO") != null){ ..} 유지보수하고 있는 프로젝트에서 index페이지 내에서 session의 정보를 이용하고 있다. session의..

프로젝트] 날짜 구하기 feat. 비밀번호 90일 만료 기간 설정하기.

1. 환경 1) JAVA 1.7 2. 과정 String changePwFalg = ""; /* 날짜 포맷 셋팅 */ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar cal = Calendar.getInstance(); /** * 2021. 01. 14 * test.properties 에서 90일 값을 셋팅 후 Environment 객체를 호출해 사용. * 자바단에서 이후 날짜를 변경하지 않는다. */ final long passwordDateLimit = Integer.parseInt(Environment.getPasswordDateLimit()); /** * 2021. 01. 14 * TA_MANAGER 테이블의 PASSWORD_DA..

프로젝트] Map.put 을 사용할 때 주의해야할 점.

put 에 대한 것. Map 이나 오브젝트 구조에 .put() 할 때 동일한 키값이 존재하면 덮어씌워진다. 객체참조, 주소참조 아래코드에서 주석처리된 부분은 잘못된 부분이다 근데 API를 호출하면 제대로 결과가 나왔다 이유는...? put()을 할 때 동일한 키값으로 계속 넣고 있었으며, 마지막 for문 밖에서도 동일한 key값으로 넣어서 에러가 없이 되는 것이였다. 즉 에러는 뜨지 않지만 결과적으로는 잘못된 방법으로 코딩을 했던 것... 객체참조와 주소참조를 정확하게 알아야하고 원하는 구조와 원하는 값을 자유자재로 다룰 줄 알아야 한다. for(Map getBannerImg : kioskBannerList) { String introBannerImgPrefix = getBannerImg.get("int..

프로젝트] intelliJ common.properties 사용하기.

보통은 properties를 하나를 이용하는데 현장에서는 properties를 여러개 나눠서 설정해서 쓴다. (회사마다 다르겠쥬...) 배포시에는 어떤걸 사용하는지 3개 중 하나만 넣으면 되는데 문제는 Local 에서 테스트를 할 때 어떤 properties 쓰느냐이다. 우리는 메이븐이 아닌 그레들을 사용하고 있다. 그레들 설정에서 이와 같이 분기를 하게끔 설정해주었다. 근데 인텔리제이에서 아래와 같은 문법을 사용하면 Groovy 에서는 적용할 수 없는 문법이라고 한다. Groovy 안쓰니깐 그냥 건너뛰었다... 이제 이렇게 설정이 됐는데 Local 에서하고 싶을 때는 그냥 사용하면 되는데 다른 properties 를 쓰고 싶을 때는 어떻게 하느냐...?! Run -> EditConfiguration -..

프로젝트] 아이디 저장 feat. cookie

로그인 버튼을 눌렀을 시 로그인() 함수 안에 넣어놨었는데.. 아이디 저장이 되지 않았다. var userInputEmail = $.cookie('email', $("#email_real").val(), { expires : 365 }); var userInputCheckBox = $.cookie('idSave', $("#idSave").val()); console.log('userInputEmail >>> ', userInputEmail) console.log('userInputCheckBox >>> ', userInputCheckBox) $('input[name="email_real"]').val(userInputEmail); $('input[name="idSave"]').val(userInputCh..

프로젝트] java8 이하 for문과 향상된 for문

API 를 만들고 있습니다. 요청하는 값 중에서 qrReader를 키 : Value로 보내면 백단에서 그것을 받아서 처리합니다. "reservationHistoryDetail": [ { "rdSeq": "200", "gdPackageSeq": "GD20", "gdPackageName": "테스트", "rdPerson": 2, "rdPrice": 20000, "rdAmount": 40000, "plName": "2", "plSeq": "P6", "sdStartTime1": "09", "sdEndTime1": "12", "sdStartTime2": "00", "sdEndTime2": "00", "inspectInfo": [ "3IE3TgUVVtSlhS==asjdlkasjhdlwbda", "i3z2Oih+1r..