Web Programming
-
Connection evictor 와 관리 필요성에 대하여
Web Programming 2024. 3. 2. 20:35"Connection evictor"는 일반적으로 커넥션 풀에서 사용되는 개념입니다. 커넥션 풀은 애플리케이션이 데이터베이스나 다른 리소스와의 연결을 관리하는 데 사용됩니다. 커넥션 풀에서는 일정 시간 동안 사용되지 않는 커넥션을 제거하고, 새로운 커넥션을 만들어서 풀에 추가함으로써 리소스를 효율적으로 관리합니다. "Connection evictor"는 커넥션 풀에서 커넥션을 강제로 제거하는 역할을 하는 요소입니다. 일정 시간 동안 사용되지 않은 커넥션을 감지하고 제거함으로써 풀 내의 리소스를 최적화합니다. 그러나 너무 많은 connection evictor가 있는 경우에는 몇 가지 문제가 발생할 수 있습니다. 성능 저하: Connection evictor가 너무 자주 실행되면, 애플리케이션의..
-
[postgre SQL] 1초 빼기 INTERVAL
Web Programming 2023. 12. 26. 19:36TIME 컬럼의 데이터가 11:00:00 일 경우 쿼리로 11:00:00 과 10:59:59 를 한번에 나타내려고 할때 예시 ) SELECT TIME AS TIME, SUBSTRING( TO_CHAR( TO_TIMESTAMP(CONCAT(CURRENT_DATE,' ',TIME),'YYYY-MM-DD HH24:MI:SS') - INTERVAL '1 second' , 'YYYY-MM-DD HH24:MI:SS' ) FROM 12 FOR 16) AS FIRST_TIME FROM TABLE WHERE 1=1 CONCAT 으로 문자열 데이터를 합치고 TO_TIMESTAMP 로 날짜 형식을 지정해주고 SUBSTRING 을 하기 위해서 TO_CHAR 로 형변환을 해준다. INTERVAL '1 second' 로 -1초 ..
-
[PostgreSql] 형변환 CAST INTEGER
Web Programming 2023. 12. 23. 23:03Postgre 컬럼 중에서 컬럼이 varchar 타입이면서 데이터 입력된 값들은 숫자일 경우 이 컬럼을 숫자로 형변환해서 합계나 숫자로 표현해줘야 할 경우 cast 후 as INTEGER 를 이용해서 형변환을 해주면 된다. 예시 ) CAST(컬럼 AS INTEGER) 컬럼 두개일 경우 CAST(컬럼 AS INTEGER) * CAST(컬럼 AS INTEGER) 이런식으로 곱하기도 가능하고 물론 더하기도 가능하다. 쿼리문 작성을 다하고 형변환이 다른 sql 과 달라서 애먹었는데 기억해두록 하자..!
-
[SQL] 등가 조인 Equi join
Web Programming 2023. 12. 23. 23:00SQL 등가 조인 Equi join 간단 예시 사진과 같은 테이블 1 , 2가 있다고 가정하고 등가 조인을 한다고 가정했을때 SELECT * FROM TABLE 1 T1, TABLE 2 T2 WHERE 1=1 T1.PK1 = T2.PK1 테이블 1 의 PK1 과 테이블 2 의 PK2 가 조인되어 테이블 1의 3,4는 사라짐 SELECT * FROM TABLE 1 T1, TABLE 2 T2 WHERE 1=1 T1.PK1 = T2.PK1 T1.PK2 = T2.PK2 테이블 1, 2 의 PK1 을 조인 후 PK 2 가 같은 조건이므로 빨간색줄은 사라짐. 여기서 만약 PK 키가 더 있다면 T1.PK1 = T2.PK1 와 마찬가지로 조건을 더 주가해주면서 필요한 데이터만 조회할 수 있다.
-
spring mvc 패턴에서 서비스 로직을 컨트롤러에 작성하면 안되는 이유??
Web Programming 2023. 11. 16. 21:32Spring MVC에서 서비스 로직을 컨트롤러에 직접 작성하는 것은 권장되지 않습니다. 이에는 여러 이유가 있는 아래와 같다. 1.코드의 재사용성 및 모듈성 감소: 서비스 로직을 컨트롤러에 직접 작성하면 해당 로직을 재사용하기가 어려워집니다. 서비스 레이어에서 로직을 분리하면 여러 컨트롤러에서 동일한 비즈니스 로직을 호출하여 재사용할 수 있습니다. 2.테스트의 어려움: 서비스 레이어에서 비즈니스 로직을 분리하면 테스트하기가 훨씬 쉽습니다. 서비스 레이어에 비즈니스 로직이 모여 있으면 해당 로직에 대한 단위 테스트가 더 용이해집니다. 3.트랜잭션 관리: 서비스 레이어에서는 트랜잭션을 관리할 수 있습니다. 여러 개의 데이터 조작 작업이 하나의 트랜잭션으로 묶일 수 있어 데이터 일관성을 보장하고, ..
-
[javascript] 자바스크립트 for문 반대로
Web Programming 2023. 11. 10. 16:53자바스크립트로 for문을 돌릴때 index 가 0 부터가 아닌 거꾸로 시작해서 for 문 작성할 때 for(var i=array.length-1; i>=0; i--){ } array.length-1 해주는 이유는 array = [ 1, 2, 3 ] 이라고 한다면 length 는 3 이고 index 는 0 , 1 , 2 가 된다. 그러면 or(var i=array.length; i>=0; i--){ } 처럼 -1 없이 돌리면 i=3 이 되고 array 에 index 3번째 요소가 없기 때문에 오류가 발생하게 되므로 -1 을 해주면 된다.