반응형

분류 전체보기 360

[PostgreSQL] insert시 seq 최댓값 + 1로 자동증가 입력 (MAX값 +1)

[PostgreSQL] insert시 seq 최댓값 + 1로 자동증가 입력 (MAX값 +1) PostgreSQL EDB는 Oracle과 호환되는 문법이 많다. PostgreSQL에서 insert시 seq 값을 최댓값 + 1로 자동증가 되게끔 입력하고 싶다면 아래 쿼리를 이용하면 된다. INSERT INTO 스키마명.테이블명 ( 컬럼명 ) VALUES ( (SELECT NVL(MAX(컬럼명), 10000000000) + 1 AS 컬럼명 FROM 스키마명.테이블명) ) 문법은 오라클 문법과 동일한데, 이는 PostgreSQL EDB에서는 동작한다. 위의 경우 insert되는 컬럼 값이 백억(10,000,000,000)이 넘을 가능성이 없기 때문에 충분히 큰 수인 백억으로 설정해둔 것이다. 이 경우 백억부터 ..

SQL 2022.07.13

[JavaScript] 정규식으로 validation check하기 (숫자 or 한글 or 영어 or 특수문자 입력 검증)

[JavaScript] 정규식으로 validation check하기 (숫자 or 한글 or 영어 or 특수문자 입력 검증) validation check를 할 때 정규식(Regular Expressions)을 이용하면 코드의 양을 훨씬 간결하게 만들 수 있다는 장점이 있다. 물론 단점도 있는데, 정규식에 익숙한 사용자가 아닌 이상 직관적으로 이해하기는 힘들다는 단점이 있다. input box에서 vaildation check(유효성 체크)를 할 때, 아래 JavaScript 함수를 이용해 검증을 할 수 있다. input box에 입력시 숫자만 입력 가능한 경우, 한글만 입력 가능한 경우, 영어만 입력 가능한 경우, 숫자/한글/영어 모두 입력 가능한 경우 (특수문자는 입력 제외) 사용할 수 있는 함수이다...

[PostgreSQL] ::bpchar, ::character varying 의미

[PostgreSQL] ::bpchar, ::character varying 의미 postgresql에서 테이블 생성시 create 쿼리문에 아래와 같이 ::bpchar, ::character varying 이 자동으로 추가될 때가 있다. 이것은 무엇을 의미하는 걸까? CREATE TABLE t1 ( id NUMERIC (11) NOT NULL , mmbr_status CHARACTER (2) NOT NULL DEFAULT 'S' , country_code VARCHAR (8) NOT NULL DEFAULT '82' ) 위와 같이 테이블 생성 쿼리를 날린 후 생성된 테이블의 속성 값을 보면 아래처럼 뜬다. CREATE TABLE t1 ( id NUMERIC (11) NOT NULL , mmbr_statu..

SQL 2022.06.29

[SQL] Expected one result (or null) to be returned by selectOne(), but found: 2 해결 방법

Java에서 MyBatis를 이용해 SQL를 날릴 때 다음과 같은 에러 메시지가 떴다. Expected one result (or null) to be returned by selectOne(), but found: 2 에러 메시지는 참 정직하다. 위 에러 메시지가 무슨 의미인지 해석할 필요도 없이 영어를 한국어로 번역할 수만 있으면 해석 가능하다. 결과값이 1개 또는 null이 나와야 하는데, 실제 실행 결과 2개가 나왔다는 뜻이다. [해결 방법] 이런 경우에는 조회 쿼리를 날렸을 때 실제 조회되는 데이터를 확인해봐야 한다. select 쿼리를 날렸다면 조회된 데이터가 콘솔에 뜰 것이다. 이를 직접 확인해보고 데이터가 몇 개가 나왔는지 확인해보자. 우선, 나는 페이징 처리를 하기 위해 데이터의 총 co..

SQL 2022.06.22

[JS] keyup, keydown, keypress 차이 (키보드 이벤트 발생 시점 종류)

[JS] keyup, keydown, keypress 차이 (키보드 이벤트 발생 시점 종류) 키보드 이벤트를 구분하는 기준에는, 이벤트 발생 시점이 중요하다. jQuery에서 지원하는 키보드 이벤트 종류에 대해 알아보자. 1. keyup - 키보드를 눌렀다가 손을 떼는 시점에 이벤트 발생 2. keydown - 키보드를 누르는 시점에 이벤트 발생 - 키보드를 계속 누르고 있는 경우에는 처음 한 번만 이벤트 발생 3. keypress - 키보드를 누르는 시점에 이벤트 발생 - 키보드를 계속 누르고 있는 경우에는 이벤트가 계속 발생 흔히 keydown과 keypress를 헷갈려하는 경우가 많으니 둘의 차이점을 명확하게 알고 있어야 한다.

Hexagonal Architecture이란? 기본 개발 방법 (Adapter, Port, Service)

Hexagonal Architecture이란? 기본 개발 방법 (Adapter, Port, Service) Layered Architecture vs Hexagonal Architecture Layered Architecture(계층화 아키텍처, 레이어드 아키텍처)를 적용해서 어플리케이션을 만들 때는 비즈니스 로직, 유효성(valudation) 체크, DB 접근 등의 로직이 Controller나 Service 단에 몰아서 작성되는 경우가 많다. 코드를 한 곳에 몰아서 작성하면 코드 길이가 길어짐에 따라 유지보수나 리팩토링이 어려워지므로 이런 방식은 지양해야 한다. 이를 개선하기 위해 Hexagonal Architecture(헥사고날 아키텍처, 육각형 아키텍처)를 적용하는 방법이 있다. Hexagonal ..

Java 2022.06.08

[STS] 콘솔 로그가 많이 찍혀서 STS가 멈추는 경우 (콘솔 응답없음)

[STS] 콘솔 로그가 많이 찍혀서 STS가 멈추는 경우 (콘솔 응답없음) STS에서 Spring Boot 개발시 콘솔 로그가 많이 찍혀서 STS가 멈춰버리는 경우가 있었다. 로그가 많이 찍히긴 했어도 멈출 상황은 아니었다. 로그를 확인하며 작업을 해야했기에 이를 해결해보려고 했다. 생각해보니 며칠 전부터 STS의 콘솔창 로그가 알록달록하게 보이기 시작했다. 내가 설정을 바꾼 것 같은데 무엇을 바꿨는지 기억이 나지 않았다. [해결 방법] Boot Dashboard에서 우클릭 > Open Config > ANSI console output 체크 해제 이 방법을 통해 STS가 멈춰버리는 현상을 해결했다. ANSI console output 체크를 해제하면 콘솔 창에서 로그 레벨별로 형형색색으로 띄던 게 사라..

Java 2022.06.01

[STS] STS(또는 eclipse) 느릴 때 해결 방법

[STS] STS(또는 eclipse) 느릴 때 해결 방법 STS(또는 이클립스)가 느려서 작업할 수 없다면 아래와 같이 설정 파일의 속성 값을 변경하는 것으로 해결할 수 있다. STS이 설치된 폴더에 SpringToolSuite4.ini 파일도 함께 있을 것이다. (이클립스의 경우 eclipse.ini) 이를 코드 에디터 프로그램을 이용해 연다. -Xms256m -Xmx2048m ini 파일을 건드린 적이 없다면 아마 위와 같이 메모리 영역이 기본 값으로 설정되어 있을 것이다. -Xms1024m -Xmx4096m 나의 경우 위와 같이 메모리 용량을 늘려줬다. 이렇게만 해줘도 STS(또는 이클립스)가 좀 더 빨라진 것을 체감할 수 있다.

Java 2022.05.25

[JavaScript] 날짜 형식 변경 (20220101 => 2022-01-01), (Y=>미동의)

[JavaScript] 날짜 형식 변경 (20220101 => 2022-01-01), (Y=>미동의) 아래는 자바스크립트를 이용한 날짜 포맷팅 방법이다. /* 날짜 포맷팅 (20220101 => 2022-01-01) */ function dateFormatting(data) { if (data == null || data == "") { return "-" } else { let y = data.substring(0, 4); let m = data.substring(4, 6); let d = data.substring(6, 8); return y + "-" + m + "-" + d; } } 아래는 자바스크립트를 이용하여 "Y"는 "동의"로, "N"는 "미동의"로 변경하는 방법이다. /* Y/N => 동의..

[Java] 어드민페이지 만들기 1편~최종 모음 (JPA, Rest API, API 명세)

[Java] 어드민페이지 만들기 1편~최종 모음 (JPA, Rest API, API 명세) 어드민페이지 포스팅을 하다 보니 글이 여러 개가 나오게 되었다. 이번 페이지는 링크 모음 페이지로써, 필요한 부분만 찾아 들어가기 쉽게 만들었다. 1~2번은 어드민페이지를 만들기 위해 필요한 사전학습 과정이며, 3번부터 어드민페이지를 본격적으로 만들기 시작한다. 아래 순서대로 학습을 이어가면 자바를 이용해 어드민 페이지를 만드는 과정을 이해할 수 있을 것이다. 1. Spring Boot에서 Get / Post 메소드 사용법 @RequestMapping @GetMapping 멀티 파라미터의 경우 객체로 받기 (String 값으로 리턴, JSON 형식으로 리턴) @PostMapping Rest Client 툴을 이용한..

Java 2022.05.11
반응형