IT 공부/Java 2024. 12. 11.
[Java] JFR (Java Flight Recorder)
Java Application 의 실시간 상태 정보를 확인할 수 있다.JFR의 경우 라이선스가 필요 사용방법)1.JVM 옵션 아래 내용을 추가 한다.- XX:+UnlockCommercialFeatures- XX:+FlightRecorder UnlockCommercialFeatures 옵션을 사용한다는 것은, 라이선스 정책에 동의하는 것을 의미한다. 2. jcmd 를 이용하여 덤프 파일 생성jcmd JFR.start duration=60s filename=test01.jfr duration = 다음에 시간, filename 에는 파일네임.jfr 을 입력하면 된다. 3. 남겨진 파일은 아래 JMC 도구로 확인하면 된다.https://www.oracle.com/java/technologies/javase..
IT 공부/Java 2024. 6. 28.
[Java] 한글로 된 파일 업로드/다운로드 시 파일명 깨짐
@RequestMapping("/Download")public class DownloadController { private static String UPLOAD_FOLDER = "D:/logs/"; @Autowired FileService fileService; @GetMapping("/{fileId}") public ResponseEntityResource> downloadFile(@PathVariable("fileId") int fileId) throws MalformedURLException, UnsupportedEncodingException { FileInfo fileInfo = fileService.selectFileInfo(fileId); ..
IT 공부/Java 2024. 6. 28.
[Java] 파일 업로드 Multipart 시 413 에러
Resolved [org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded] out 로그(terminal)에는 위와같이 찍혔다. 우선 파일 제한 용량을 올려주기 위해 다음과 같이 할 수 있다. - application.properties 또는 application.yaml 수정spring.servlet.multipart.max-file-size=10MBspring.servlet.multipart.max-request-size=10MB이건 properteisspring: servlet: multipart: max-file-size: 10MB max-request-size..
IT 공부/Java 2024. 6. 14.
[JavaScript] 메뉴 카테고리 JavaScript 로 구현하기 (LocalStorage)
JavaScript 로 메뉴 카테고리 구현하기 기능 설명1. 메뉴 추가를 누르면 input text 창이 나오고, 해당 내용 입력 후 저장을 누르면 하위카테고리가 생김2. 가장상위(depth) 는 전체보기를 클릭후 메뉴추가3. 삭제하고자 하는 메뉴를 클릭 후 삭제버튼을 누르면 삭제됨.4. 다만 하위항목이 존재할경우 삭제가 되지 않음5. 별도의 DB가 없이 LocalStorage 를 이용하여 저장할 예정 1. script 를 제외한 head~body 부분 메뉴 관리 메뉴 추가 전체보기 메뉴 저장 삭제 itemList 에 이제 script 를 이용하여 동적으로 메뉴를 생성 Script 부분1. list 항목 추가 후 a..
IT 공부/Java 2024. 3. 21.
[Java] GC Log Analyzer(IBM GA) 분석하기
Analysis Tool for Java Garbage Collector 켜서 GC Log 읽혀주면 처음 뜨는 창은 다음과 같음 (개인 테스트 정보가 있어 가렸습니다) 이 GC Log 에서 나름 지켜볼만한 항목은 - Number Of Object Requests larger than 10 M bytes 항목 (10M 이상 넘는 객체들이 얼마나 왔는지) > 10M 넘는 객체들은 일반적이지 않음 - Longest Garbage Collections > GC 시간이 오래 걸렸으니 주의깊게 살펴보는게 좋고 해당 시간 전후로 어떤 일이 있어났는지 확인해보는게 좋음 전체적인 통계치나 평균치도 한번쯤 보는게 좋다. 우클릭하면 GC 로그를 분석한 표 / 그래프를 확인할 수 있음 표 출력시 위와 같고 순서는 내 임의대로..
IT 공부/Java 2024. 3. 19.
[Java] GC Log 에 관하여
GC (Garbage Collecor) 을 보려면 Log 분석은 필수다. Garbage Collector (GC) 에대해 (참고) - JVM이 자체적으로 더 이상 사용하지 않는 메모리를 자동 해제해 줌 - 일반적으로 참조계수 확인을 통해 해제 > 참조계수를 확인하고, 객체를 해제하는 과정에서 GC는 Heap영역에 대한 Lock이 발생하며, 이로 인해 JVM이 멈추는 현상이 발생하게 됨 - GC가 수행하는 역할은 규칙적이고 일정하게 발생하는 것은 아님 (어플리케이션의 패턴과 메모리의 크기에 따라 수행빈도와 처리시간이 다르다) >> GC Log 에 Java Heap 메모리의 사용패턴과 GC의 수행패턴을 확인할 수 있는 정보가 기록됨 그럼 언제 GC Log 분석이 필요할까? 주로 OOM이 발생하는 경우 (Ou..
IT 공부/Java 2024. 3. 8.
[Java] JMX (Java Management Extensions)
JMX는 Java Management Extension 의 약자로 Java 응용 프로그램의 모니터링과 관리기능을 제공 하는 API 이다. 웹사이트를 통해 WebServer, WAS, DB 제어 및 모니터링 등을 가능하게 해줌 > Mbean 이라는 객체로 리소스 관리(Java 객체) Mbean 의 네이밍 규칙 : XXXMBean (ex. HelloMBean) 구현체 이름은 XXX (ex. Hello) JMX는 3단계 레벨로 이루어져있음. 아래 기술한 순서대로 접속이 이루어짐 JMX Console (Web Browser 등) --- (RMI 또는 HTTP 등의 통신을 이용하여 접속) --- 1. Remote Management Tier Connector, Protocol Adaptor 와 같이 연결 담당 2..
IT 공부/Java 2022. 1. 5.
Selenium 기본 정리
Selenium 웹 어플리케이션을 테스트하기 위한 프레임워크 주로 크롬 등의 브라우저를 이용해서 해당 웹 어플리케이션에 접속하여 코딩된대로 액션을 실행해줌. 수강신청, 예매 등 매크로로 이용할 수 있을 것 같고, 동적인 페이지에서도 크롤링이 가능해보임 리눅스 CLI 환경에서도 옵션을 통해 웹 브라우저를 띄우지 않고 가능 1. 프레임워크 설치 https://www.selenium.dev/downloads/ 맞는 버전 다운로드 후 안에 들어가있는 jar 파일들과 lib안 파일들 Java build path에 등록 (properties - java build path) 2. 크롬을 이용하여 접속할 것이기 때문에 chrome driver 다운로드 3. 크롬이 없다면 크롬도 다운로드 (크롬 드라이버와 버전 맞출 ..