본문 바로가기
반응형

전체 글1073

자바 예외 만들기 기본적으로 자바에서 제공하는 에러나 예외들이 존재한다. 그에 대한 설명들은 아래 참고 포스팅을 참고 바란다. 하지만 try catch로도 처리가 가능하지만 개인 프로젝트에서 특별히 예외 처리를 하고 싶을 경우가 있다. 그럴경우엔 예외클래스를 하나 만들어주고 throw로 던지곤 한다. 에러 혹은 예외 클래스를 만드는 법은 다음과 같다. (RuntimeException 상속) public class ExceptionEx extends RuntimeException { // 1. 매개 변수가 없는 기본 생성자 ExceptionEx() { } // 2. 예외 발생 원인(예외 메시지)을 전달하기 위해 String 타입의 매개변수를 갖는 생성자 ExceptionEx(String message) { super(mes.. 2023. 4. 18.
순환 참조란? 스프링을 사용하면서 서버를 띄우니 아래와 같은 에러가 발생 하였다. The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | autowiredTestA defined in file [/Users/eclipse-workspace/testProject/target/classes/com/test/autowired/AutowiredTestA.class] ↑ ↓ | autowiredTestB defined in file [/Users/eclipse-workspace/testProject/target/classes/com/test/autowired/AutowiredTestB.class] └─────┘ 순환 참조가 .. 2023. 4. 17.
Thread starvation or clock leap detected 이클립스를 통해서 서버를 띄워두고 종료를 하기 전에 로그를 보니 아래와 같은 로그들이 대량 출력되어있었다. 2023-04-16T15:15:55.573+09:00 WARN 54734 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=17m43s37ms). 2023-04-16T15:31:58.287+09:00 WARN 54734 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detec.. 2023. 4. 16.
Map 추출하는 방법 map 에 대한 내용은 아래 포스팅에 있으니 참고 바란다. 다양한 방법으로 map 내에 데이터를 꺼낼수 있는데 그중 많이 사용하는 3가지 방법을 적어두려고 한다. Map map = new HashMap(); map.put("a", "1"); map.put("b", "2"); map.put("c", "3"); for ( String key : map.keySet() ) { log.info("a> key: {}, value: {}",key, map.get(key)); } log.info("=======================") for ( Map.Entry entry : map.entrySet() ) { log.info("b> key: {}, value: {}", entry.getKey(), entry.. 2023. 4. 15.
rownum 과 limit 의 차이 dbms에서 많이 사용되는 쿼리중에 특정 행의 갯수 반환을 위해 사용하는 구문이 있다. mssql 에서는 top-n 을 사용하지만 rownum과 limit 구문을 많이 봤을것이다. 둘의 차이를 알아보도록 할것이다. 결론만 먼저 말하면 다음과 같다. ROWNUM함수는 결과 레코드에 대한 순서의 번호를 반환한다. LIMIT 절은 출력되는 레코드의 개수를 제한 할 때 사용한다. 둘의 차이를 좀더 설명하면 limit 은 정렬 연산까지 모두 완료한 후에 최종 레코드의 갯수를 제한하는것이고 (마무리 완료 후), rownum은 모든 연산을 하기 이전에 레코드 순서를 기준으로 출력을 제한하는 것이다(그냥 위에서부터 보여주는 것). 2023. 4. 14.
chrome 에서 드래그 안되는 페이지 복사 방법(23.04.13) 크롬에서 유용한 글을 발견하여 복사해서 개인 소장을 하고 싶은데 어떤 페이지는 복사가 되고 복사가 안되는 페이지들도 있다. front 로 동작하는 페이지에서 보여지는 모든것들은 대부분 자바스크립트 소스에 의하여 동작을 한다고 여길수 있다. 즉, 자바스크립트의 특정 코드로 인해서 드래그를 막아놓은것이다. 그럼 이를 해결하는 방법은 자바스크립트의 동작을 끄면 된다. 방법은 간단하다. 크롬에서 f12 를 눌러서 오른쪽에 설정 창이 뜨게 한 후 그림에 있는 톱니 바퀴를 누른후 자바스크립트 사용 중지를 체크하면 드래그가 가능하다. 2023. 4. 14.
D2 coding(23.04.12) D2 코딩이란 네이버에서 제공해주는 개발 전용 폰트이다. 물론 윈도우나 맥 기본 글씨체로도 적용이 가능하지만 개발할때 적용을 하면 더욱 도움이 된다. 설치법은 다음과 같다. https://github.com/naver/d2codingfont 에서 '다운로드' 바로 아래에 있는 'Ver 1.3.2 (2018.06.01)' 클릭한다. 다음 아래 빨간 네모를 다운 받는다. 왼쪽 상단 설치 버튼을 누르면 os에 글씨체가 설치가 된다. 이어서 이클립스 적용은 다음과 같다. window >preferences 그리고 아래 사진과 같이 검색 후 설정을 하면 된다. 2023. 4. 14.
application.properties vs application.yml 본 포스팅의 주제는 제목과 같다. 먼저 둘의 차이를 보기 위해서 예제를 보면 다음과 같다. application.yml server: port: 8080 servlet: context-path: /test encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test?useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Seoul&useLegacyDatetimeCode=false username: root password: root applicat.. 2023. 4. 11.
reflection 를 통해 MapToObject 만들기 이번 포스팅은 저번에 이어서 reflection 를 더 잘 사용하기 위한 포스팅이다. reflection에 대한 내용은 아래 참고 포스팅을 활용 바란다. 아래 예시는 Map으로 Dto를 만들기 위한 샘플 메서드 이다. public static Object mapToObject(Map map, Object obj){ String keyName = null; String methodName = null; Iterator itr = map.keySet().iterator(); while(itr.hasNext()){ keyName = itr.next().toString(); methodName = "set"+keyName.substring(0,1).toUpperCase()+keyName.substring(1);.. 2023. 4. 10.
반응형