본문 바로가기

Language/Java53

JPA 정의(Java Persistence API) / JPA 사용이유 / JPA 장단점 JPA (JAVA PERSISTENCE API) 란? 애플리케이션의 데이터를 객체지향 관점으로 바라보고 다룰 수 있게 해주는 자바 진영의 ORM 기술표준인 객체지향 기술 ORM(Object Relational Mapping) = 객체와 관계형 데이터베이스를 매핑해주는 것 SQL 작성없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주는 기술로 애플리케이션과 JDBC 사이에서 동작한다. JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 선택해야 하는데, 현재 JAP를 구현한 ORM 프레임워크는 하이버네이트, EclipseLink, DataNucleus 중 하이버네이트가 가장 대중적이다. SQL을 직접 다룰 때의 단점 1. 반복적인 CRUD SQL 작성과 객체를 SQL에 매핑하는 코드를 작성하는데 시.. 2021. 5. 21.
captcha NoClassDefFoundError / No find fonts 캡챠오류 해결방법 관리하던 물리서버를 가상화서버로 이전 후 모니터링 중 캡챠오류를 발견했다. (로그인 시 5회 이상을 체크하여 캡챠를 제공해주는 서비스) 에러로그는 NoClassDefFoundError 와 No find fonts 조치내역 (1) root계정에서 font를 다운받아 준다. yum install fontconfig dejavu-sans-fonts dejavu-serif-fonts (2) tomcat8.xx/lib에 ojdc6.jar가 들어있길래 삭제 (3) 권한 cd {소스경로}/WEB-INF/classes/com/common/jcaptcha cd {소스경로}/WEB-INF/lib 에 chmod 644 ./* 개인적으로 (3)번은 영향도가 없는 것 같음. 2020. 12. 28.
java.io.FileNotFoundException (Permission denied) 해결방법 java.io.FileOutputStream.open java.io.FileNotFoundException (Permission denied) 에러 해결방법. 일단 해당 에러는, 소스를 배포한 후 .csv 파일을 다운로드하는 action에서 발견된 에러다. Permission denied라고 해서 권한을 의심. 일단 tomcat이 어떻게 띄어져 있나 확인을 했더니 tomcat계정으로 기동되어 있었고, 소스는 resin resin 계정의 소유권으로 지정되어 있었다. 따라서 tomcat계정이 resin 디렉토리에 직접적인 R(write) 접근 못 하는것으로 예상. 소스디렉토리 루트를 tomcat resin 계정의 소유로 변경해주었다. chown -R tomcat:resin ./ 현 디렉토리 기준 아래 모든 .. 2019. 10. 7.
JAVA 파일다운로드 에러 (HTTP response 413 error / Tomcat 파일다운로드 에러) PDF 파일다운로드 보기 서비스에러 사례.== 톰캣 파일업로드 용량 Error ( 자바 파일다운로드 안될때!! ) 1. pdf 파일 생성 서버에서 HTTP resonse code 413이 응답되는것을 보고서버에서 response limit 증가 설정을 함 -조치방법--> nginx서버에서 response limit 값을 100M설정. -에러이유--> 서버에서 PDF를 만들 때 데이터를 약 5000건 이상 XML로 만들어서전달하는 데이터의 양이 많았던 것으로 예상됨. ) 2. 413 에러는 사라졌으나 응답이 0Byte로 오면서 PDF가 다운로드 되지 않음. 413 에러만 사라졌을 뿐 문제가 해결되지 않음 3. PDF를 만드는 서버로직에 catch로 exception 추적. 그러나 exception을 떨어뜨.. 2019. 7. 31.
Garbage Collection 쉽게 정리! Garbage Collection 이란? 객체지향언어인 JAVA의 강점 및 특징 중 하나로절차지향언어인 C와는 개발자가 메모리 관리에 신경쓰지 않아도 된다라는 것이다.C같은 경우는 개발자가 직접 메모리 해제를 해줘야 함.메모리정리를 해주는 주체를 Garbage Colletor라고 하는데 가비지콜렉터는 자바벤더, 버전, GC정책에 따라 다소 차이가 있긴 하지만 공통적으로는 메모리 정리가 필요한객체를 식별하여 메모리를 정리해 여유메모리를 확보해주는 역할을 한다. 개발자가 메모리 관리를 하지 않아도 된다라고 하지만 100%그렇지만은 않다.간혹 GC매커니즘이 문제를 유발하기도 하는데GC 종류 중, Full GC 가 발생하면 모든 어플리케이션이 중단되기도 하기 때문이다.이를 업계에선 stop-the-world 라.. 2019. 6. 21.
no valid entries or contents found this is not a valid ooxml.docx 해결방법 no valid entries or contents found this is not a valid ooxml.docx 암호화된 Excel 문서를 업로드하여 데이터를 추출해 그대로 출력해주는 프로그램을 개발중이었다. 1) 암호화 Excel 문서를 업로드하면서no valid entries or contents found this is not a valid ooxml.docx 에러가 났다.2) 엑셀파일 경로를 읽어 DrmUtil Class를 호출하였고, DrmUtil Class에서 오류가 발생함을 Log를 통해 확인하였다..소스를 분석해보니 뭔가 이상한점을 발견했다. -여기서 datPath는 Drm해제를 시켜주는 파일의 path 값을 정의.-targetFile은 내가 업로드한 Excel의 파일 path 값을 .. 2019. 2. 22.