MariaDB - 행 번호 출력하기 ROW_NUMBER() OVER PARTITION BY
·
SQL
오라클에서는 RNUM()을 통해 쉽게 순번에 맞는 행 번호를 출력할 수 있었다. 이번에 JSP로 프로젝트를 진행하면서 MariaDB를 사요하게 되었고 MariaDB에서도 행 번호를 출력할 수 있는 방법에 대해 정리해본다. MariaDB에서는 ROW_NUMBER() OVER() 함수를 사용하면 된다. OVER 안에는 PARTITION BY와 OREDER BY를 사용할 수 있다. PARTITION BY : 결과 집합을 분할하는 데 사용하는 열을 지정한다. PARTITION BY를 지정하지 않으면 모든 행이 단일 그룹으로 취급된다. ORDER BY : 지정된 파티션 내에서 각 행의 고유 ROW_NUMBER가 할당되는 순서를 결정한다. 예제 SELECT ROW_NUMBER() OVER(ORDER BY name ..
JSP - Spring Boot에서 JspConfig 설정하기
·
JSP
기존 Sprin에서는 web.xml을 통해서 Jsp Config를 설정해야했다. 하지만 SpirngBoot부터는 SpringBootServletInitializer 상속 받은 클래스로 Jsp Config를 설정할 수 있다. @Configuration public class JspConfig extends SpringBootServletInitializer { @Bean public ConfigurableServletWebServerFactory configurableServletWebServerFactory() { return new TomcatServletWebServerFactory() { @Override protected void postProcessContext(Context context) {..
Eclipse Memory Analyzer - JVM is not suitable for this product 원인과 해결방법
·
나의 에러 일지
GC 에러로 인해 서버가 다운되어서 원인을 알아보기 위해 dump 파일을 분석해볼 필요가 있었다. Java - java.lang.OutOfMemoryError:GC overhead limit exceeded 원인 실행중이던 서버가 갑자기 다운이 되었다. 로그를 살펴보니 처음보는 에러였다. 서버를 다시 재실행하니 문제없이 잘 작동하기는 했지만 해당 에러에 대해 가볍게 정리를 해보고 이후에 제대로 green-bin.tistory.com dump파일을 분석하기 위해서는 eclipse memory analyzer라는 애플리케이션이 필요해서 다운 받는 과정에서 에러가 발생했다. Version 11.0.19 of the JVM is not suitable for this product. Version: 17 or ..
Java - java.lang.OutOfMemoryError:GC overhead limit exceeded 원인
·
나의 에러 일지
실행중이던 서버가 갑자기 다운이 되었다. 로그를 살펴보니 처음보는 에러였다. 서버를 다시 재실행하니 문제없이 잘 작동하기는 했지만 해당 에러에 대해 가볍게 정리를 해보고 이후에 제대로 된 해결 방법에 대해 공부해보려고 한다. java.lang.OutOfMemoryError: GC overhead limit exceeded 원인 JVM에서 애플리케이션이 가비지 콜렉션을 수행하는데 너무 많은 시간을 소비해서 애플리케이션을 실행할 수 없게 되는 상황에 발생하는 에러이다. 일반적으로 두 가지 상황에서 발생할 수 있다고 한다. 일반적으로 Map이나 ArrayList와 같은 자료구조를 사용할 때 많은 데이터를 자료구조에 저장할 때 메모리 사용량이 높아져서 발생할 수 있다고 한다. 나의 경우에도 회원 정보 목록 조회..
Oracle - 줄바꿈(개행) 제거
·
SQL
게시글을 작성하거나 댓글을 작성할 때 줄바꿈(개행)이 들어가는 경우가 있다. 개행이 포함된 데이터를 csv파일로 추출해야 할 일이 있었는데, 글씨가 깨져서 추출되었다. 개행을 제거해서 csv파일을 추출해야 했다. 오라클에서 개행을 제거하는 방법을 가볍게 알아보자 SELECT REPLACE(REPLACE(컬럼명, CHR(10), ''), CHR(13), '') FROM 테이블명 CHR(10) : 라인 피드라고 한다. 현재 커서가 위치한 줄에서 한 칸 아래로 이동한다. (\r) CHR(13) : 캐리지 리턴이라고 한다. 캐리지 리턴은 현재 커서가 위치한 줄의 맨 앞으로 보낸다. (\n) 눈치가 빠른 사람은 알겠지만 위 방법을 반대로 사용하면 개행을 추가해줄 수 있다. UPDATE 테이블명 SET '개행을'|..
DB - DB View에 대해서 알아보자
·
SQL
DB View DB View란 데이터베이스에서 특정한 데이터를 보여주는 가상의 테이블이나 뷰를 말한다. 실제 데이터를 저장하고 있는 테이블에서 필요한 데이터를 가져와서 논리적인 구조로 표현하는 것이다. 특정 정보를 자주 조회해야 하는 경우나 복잡한 쿼리를 View로 만들어서 간편하고 일관성 있게 조회할 수 있다. 가상 테이블: DB View는 실제 데이터를 저장하지 않고, 저장된 데이터를 기반으로 쿼리에 따라 동적으로 생성되는 가상 테이블이다. 그래서 데이터의 물리적 공간이 필요하지 않다. 데이터 추상화: DB View는 데이터베이스에 저장된 복잡한 데이터 중에서 필요한 데이터만 선택적으로 조회할 수 있다. 보안 및 접근 제어: 특정 테이블의 일부 컬럼만을 노출하거나, 데이터의 일부를 가공하여 제공함으로..
Git - 로컬 브랜치 이름 변경하기
·
Git
프로젝트를 생성했는데 기본 브랜치 이름이 master로 생성되었다. 바뀐 이유를 알고나니 master를 그대로 사용하기는 좀 그래서 main으로 변경하는 방법에 대해 찾아봤다. Github의 default 브랜치 이름은 원래 master였지만 노예제를 연상시키는 이유로 main으로 변경되었다. 로컬에서 브랜치명을 변경하는 방법은 간단하다. master 브랜치로 설정되어 있는 상태에서 아래 명령어를 치면 된다. (프로젝트 경로에서 작성하는건 기본) git branch -m main
HTTP - 헤더 정보
·
Network
Referer 현재 요청된 페이지의 이전 웹 페이지 주소 A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 Referer를 사용해서 유입 경로 분석 가능 요청에서 사용 참고: referer는 단어 referrer의 오타 User-Agent 유저 에이전트 애플리케이션 정보 클라이언트의 애플리케이션 정보 (웹 브라우저 정보, 등등) 통계 정보 어떤 종류의 브라우저에서 장애가 발생하는지 파악 가능 요청에서 사용 ex) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Server 요청을 처리하는 ORIGIN 서버의 소프트..
HTTP - 알아두면 좋은 URI 설계 개념
·
Network
문서(document) 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row) ex) /members/100, /files/star.jpg 컬렉션(collection) 서버가 관리하는 리소스 디렉터리 서버가 리소스의 URI를 생성하고 관리 ex) /members 스토어(store) 클라이언트가 관리하는 자원 저장소 클라이언트가 리소스의 URI를 알고 관리 ex) /files 컨트롤러, 컨트롤 URI 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행 동사를 직접 사용 ex) /members/{id}/delete https://restfulapi.net/resource-naming/ REST API URI Naming Conventions and Best Practices In REST, h..
Oracle - LISTAGG (특정 컬럼의 데이터들을 하나의 로우에 출력)
·
SQL
LISTAGGLISTAGG 함수는 Oracle에서 특정 컬럼의 데이터들을 하나의 로우에 출력해야 할 때 사용한다.SELECT LISTAGG(가져올 컬럼, 구분자) WITHIN GROUP (ORDER BY 순서컬럼)FROM 테이블 이름 예시SELECT FOOD_NMFROM FOOD_INFO FOOD_NM1피자2치킨3햄버거4스파게티5짜장면6비빔밥7불고기 위 데이터를 LISTAGG 함수를 통해 하나의 컬럼으로 조회해보자SELECT LISTAGG(FOOD_NM, ',') AS FOOD_NMFROM FOOD_INFO FOOD_NM1피자, 치킨, 햄버거, 스파게티, 짜장면, 비빔밥, 불고기 여기서 컬럼을 합치기 전 정렬을 하고 싶다면 WITHIN GROUP 함수를 사용한다.SELECT LISTAGG(FOOD_NM,..
Cold Bean
'분류 전체보기' 카테고리의 글 목록 (5 Page)