본문 바로가기
반응형

Develops37

[JAVA] try-with-resources 활용하기 (자동 자원종료 기능) 최근엔 Java를 자주 개발하지 않지만 교육을 들으며, 알아두면 좋을 것 같은 문법을 발견하여 기록해둔다.평소에 자원을 활용하는 코드를 작성할 때엔 무조건 try-catch-finally 문으로 마지막에 close() 를 해주는게 당연하다고 생각했는데, try-with-resources 구문을 활용하면 try문이 종료될 때 자동으로 자원을 종료해주니 코드도 간결해지고 가독성도 좋아질 것 같다는 생각이 들었다. 기억해두었다가 추후 개발을 하게 되면 활용해야겠다. 설명try-with-resources이란?try에 자원 객체를 전달하면, try 코드 블록이 끝나면 자동으로 자원을 종료해주는 기능Java7부터 추가된 기능AutoCloseable 인터페이스를 구현하고 있는 자원에 대해서만 지원try-catch-f.. 2024. 11. 2.
[ORACLE] 특정 행 추출하기 (FETCH, ROWNUM, OFFSET, PERCENT, LIMIT, TOP) 업무를 하며 쿼리를 작성하다 보면 페이징 처리를 하거나 제한해서 데이터를 추출해야 하는 상황에 주로 ROWNUM을 활용했었는데, 이번에 FETCH 구문을 활용하는 방법을 알게 되었다.보통 ROWNUM을 활용하여 데이터를 추출하려면 정렬한 쿼리를 서브쿼리로 감싸야 하는데, FETCH 구문을 활용하면 좀 더 간결하게 쿼리를 작성할 수 있어 종종 활용하게 될 것 같고, 사실 ROWNUM과 FETCH 구문 외에도 TOP, LIMIT 등 데이터를 추출하는 방법이 많은데, 다 숙지해뒀다가 다양한 상황 및 조건에 맞춰 유연하게 쿼리를 작성할 수 있는 사람이 되어아겠다. * FETCH 구문의 경우 ORACLE 12c 버전부터 사용 가능 FETCH 구문SELECT [컬럼명] FROM [테이블명] ORDER BY [컬럼.. 2024. 11. 2.
[ORACLE] NVL, NVL2, NULLIF, COALESCE 함수 (NULL 값 처리, 치환 등) 쿼리를 작성하다 보면 NULL 값을 그대로 사용할 수 없는 경우 NULL 값에 대한 처리를 많이 하는 편이다.NULL 값을 체크하거나 치환하는 등의 처리를 위해서는 알아두면 좋을 것 같아 정리해본다.   NVL 구문 예시NVL(대상 컬럼, 대상 컬럼이 NULL 때의 값)NVL(COLUMN, 'COLUMN IS NULL') NVL2 구문 예시NVL2(대상 컬럼, 대상 컬럼이 NULL이 아닌 경우의 값, 대상 컬럼이 NULL일 경우의 값)NVL2(COLUMN, 'COLUMN IS NOT NULL', 'COLUMN IS NULL') NULLIF 구문 예시NULLIF(대상 컬럼, 비교할 컬럼)NULLIF(COLUMN1, COLUMN2) > COLUMN1와 COLUMN2의 값이 같다면 NULL 반환 > COLUM.. 2024. 8. 3.
[ORCALE] DECODE 함수 (SQL로 IF ELSE 구문 사용하기) 쿼리를 작성하다 보면 생각보다 많이 사용하게 되는 함수가 DECODE 함수이다.복잡한 로직을 짜게 된다면 가독성을 고려하여 CASE WHEN 구문을 추천하지만,간단한 IF ELSE 로직을 처리하기 위함이라면  DECODE 함수를 활용한다면 간결하게 쿼리를 작성할 수 있다. 구문 예시DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, ... , 조건에 해당하지 않았을 때의 값) 구문 예시-- COL1 값이 'A' 인 경우에만 'Y' 반환하고, 그 외에는 'N' 반환하기SELECT DECODE(COL1, 'A', 'Y', 'N') AS RESULT FROM TBL1-- COL1 값이 'A'이면서, COL2 값이 '9' 인 경우에 'Y' 반환하고, 그 외에는 'N' 반환하기SELECT .. 2024. 8. 3.
[MySQL] 위도, 경도로 거리를 계산하기(하버사인 공식, SIN, COS, ACOS, RADIANS) 쿼리 설명하버사인 공식(Haversine formula)을 이용한 방법 지구를 구와 비슷한 모양으로 가정하고, 지구의 반지름을 이용하여 두 지점 사이의 거리를 계산하는 공식Latitude(lat) : 위도  36~38Longitude(lng) : 경도 126~128거리 작성 시 1 = 1km / 0.1 = 100m`쿼리 예시slLat, slLng : 첫번째 지점의 위도/경도 좌표가 되는 값lat좌표값, lng좌표값 : 첫번째 지점으로부터 거리를 비교할 지점의 위도/경도 좌표가 되는 값SELECT 가져올컬럼 , (6371 * ACOS(COS(RADIANS(lat좌표값)) * COS(RADIANS(slLat)) * COS(RADIANS(slLng) - RADIANS(lng좌표.. 2024. 7. 21.
[PostgreSQL] GENERATE_SERIES 사용 예시 (범위 안의 일련의 값 생성) GENERATE_SERIES이란?일련의 값을 지정된 간격으로 생성해주는 함수입니다.값 사이의 간격과 단계는 사용자가 정의할 수 있습니다.  구문start : tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정stop : tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정step : tinyint, smallint, int, bigint, 10진 또는 숫자 유형. step은 음수 또는 양수일 수 있지만 0(0)일 수는 없음GENERATE_SERIES ( start , stop [ , step ] )   사용 예시1부터 10 사이의 정수 값 반환-- ex 1SELECT .. 2024. 7. 21.
[JAVASCRIPT] window.open() POST 전달 방식으로 구현하기 window.open() 이란?웹브라우저에서 새 창을 열기 위해서 가장 간단히 사용할 수 있는 방법window 객체의 open() 이라는 함수를 활용  POST 방식으로 전달하는 호출 예시function onSubmit(){ var myForm = document.popForm; var url = "/test/popForm.do"; window.open("" ,"popForm", "toolbar=no, width=540, height=467, directories=no, status=no, scrollorbars=no, resizable=no"); myForm.action =url; myForm.method="post"; myForm.target="popForm"; myForm.te.. 2024. 7. 14.
[SPRING] Tiles Framework 이란? (화면 레이아웃 라이브러리) Tiles Framework 이란?웹 화면을 각 영역으로 나눠서, 템플릿을 구성하기 쉽게 해주는 프레임워크이다.   Tiles Framework 환경 구성하기1. servlet-context.xml 설정 classpath:tiles-defs.xml  2. tiles-defs.xml 생성 및 설정  3. jsp file 생성 및 설정/views/layout/default_layout.jsp .. 2024. 7. 14.
[Tibero] AGGR_CONCAT 함수 (여러 행을 하나의 값으로 합치기) AGGR_CONCAT 함수AGGR_CONCAT는 그룹 내의 모든 로우에 대해 문자열과 구분자를 접합하여 하나의 문자열로 만들어 반환하는 함수이다. NULL 값을 반환하는 파라미터는 결과로부터 제외된다. AGGR_CONCAT의 세부 내용은 다음과 같다.  사용 예시SELECT MENU_ID , MENU_NM , MENU_CTG_CD , MENU_DEPTH , MENU_ODRG , ODRG , CNCT_BUTT_NO , CNCT_MENU_ID , BEF_MENU_ID , (CASE WHEN MENU_SBST IS NULL OR MENU_SBST = '' THEN 'N' ELSE 'Y' END) AS MENU_SBST FROM SCENA_MEN.. 2024. 7. 14.
[JAVA] 변수명 표기법 정리 (카멜, 파스칼, 스네이크, 케밥, 헝가리안) JAVA로 개발된 프로젝트들을 보면 프로젝트마다 개발자에 따른 차이인지 파일이름, 변수이름, 함수이름 등 이름 표기에 대한 규칙이 제각각인 편이다.무엇이 정답이다 하는 것은 없지만 개인적으로 생각으로는 최대한 가독성 있게 표기하는게 좋은 방식인 것 같고, 이미 구축된 프로젝트를 유지보수하는 경우에는 개인적으로 선호하는 표기법보다는 기존에 사용된 표기법을 사용하여 일관성을 지켜주는 것을 맞는게 아닌가 싶다. 그를 위해서는 다양한 표기법에 대해 숙지하도록 하자.​1. 카멜 표기법(camel case)예시 : dailyUserTable낙타 등처럼 내려갔다 올라가는 모양이라 하여 지어진 이름단어가 여러개 붙을 때, 앞 단어를 제외한 첫자를 대문자로 표기java, C# 등의 언어들에서 권장​2. 파스칼 표기법(p.. 2024. 5. 18.
[JAVA] 자바 로깅 비교 (Logger, Log4j, SLF4J, Logback, Log4j2) 로그(log)는 소프트웨어의 이벤트를 기록하는 것으로써, 소프트웨어의 동작상태를 파악하고 문제가 발생했을 때 이 동작 파악을 통해서 소프트웨어의 문제를 찾아내고 해결하기 위해 디자인 되었다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그는 다음과 같은 장점이 있다. 상활별 Level을 지정하여 Level별 메세지를 선택가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용환경 조성 가능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치 및 다양한 출력 형식 지원 Java에서는 이러한 로그에 대해 여러 프레임워크가 존재한다. 로깅 프레임워크에는 slf4j, log4j,l l.. 2024. 3. 30.
[LINUX] mkdir 명령어(디렉토리 생성, 체크) chmod는 디렉토리를 생성할 때 사용하는 명령어입니다. (make directory의 약자) 기본 문법 mkdir [옵션][생성 할 디렉토리] 명령어 옵션 옵션 설명 -m , --mode 디렉토리를 생성할 때 권한을 설정합니다. (defualt : 755) -p , --parents 상위 경로도 함께 생성합니다. -v, --verbose 디렉토리를 생성하고 생성된 디렉토리에 대한 메시지를 출력합니다. -Z, --context selinux security context 설정 예시 - 퍼미션(권한) 설정 # directory 디렉토리 생성 및 퍼미션 설정 $ mkdir -m 755 directory drwxr-xr-x 2 leevisual leevisual 4096 12월 7 13:47 directory.. 2024. 3. 30.
반응형