본문 바로가기

전체 글

(404)
[SQL, Spring] String Column VARCHAR 길이 제한 해제 방법 String 타입에서 칼럼의 기본 디폴트 length 값은 255이다. 이는 해당 칼럼이 많이 길 경우 length 값을 @Column(length = 숫자)를 이용하여 길이를 늘릴 수 있는데 해당 숫자를 무한히 설정은 불가능하다. 즉, @Column(length = 숫자)로 길이 제한을 해제할 수 있는 것에는 한계가 존재하는데 해당 한계를 넘는 길이로 값을 받아야 할 경우는 아래와 같이 처리해 줄 수 있다. 방법 1. @Column(columnDefinition = "TEXT") 방법 2. @Column(columnDefinition = "LONGTEXT") 위 어노테이션 중 하나를 길이를 제한하고자 하는 컬럼에 추가해주면 된다.
[빈 등록 에러] Bean을 찾지 못하는 에러 [에러 로그] Parameter 4 of constructor in project2.SAYO.domain.shoppingCart.service.ShoppingCartService required a bean of type 'project2.SAYO.domain.shoppingCart.entity.ShoppingCart' that could not be found. 해당 에러는 ShoppingCartService에서 필요한 ShoppingCart 유형 빈을 찾을 수 없다는 에러로, ShoppingCart Bean이 포함된 패키지가 구성 요소 검사에 포함되지 않아서 생긴 문제로 파악되며, 이는 아래와 같은 방법으로 해결이 가능하다. [해결 방법] ShoppingCart Bean이 구성 요소 검사에 포함되고 ..
[실행 실패] Web server failed to start. Port 8080 was already in use.(window/macos) 해당 문제는 말 그대로 서버 실행에 실패했으며, 해당 이유는 이미 실행하려는 8080 포트가 사용되고 있기 때문이다. 이를 해결하기 위해서는 기존에 실행되고 있는 8080 포트 실행을 종료해 주면 되는데, 이는 아래와 같이 해결이 가능하다. 1. 터미널을 '관리자 권한'으로 실행한다. - 관리자 권한으로 실행하지 않을 경우 명령어가 실행되지 않는다. 2. 아래 명령어를 통해 8080 포트를 실행중인 프로세스ID(PID)를 확인한다. [window] netstat -ano [macos] lsof -i '포트번호' 3. 아래 명령어를 통해 위에서 확인한 프로세스ID를 사용하여 프로세스를 강제 종료시킨다. [window] taskkill /pid 프로세스ID /f [macos] kill -9 프로세스ID
[프로그래머스] 삼각형의 완성조건(1) [문제] 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. (조건) 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요. [입출력 예] sides result [1, 2, 3] 2 [3, 6, 2] 2 [199, 72, 222] 1 [Solution.java] class Solution { public int solution(int[] sides) { // 배열을 순회하면서 크기 비교 후 두 값 교환 (제일 큰 값이 제일 마지막 인덱스로 오도록) // 삼각형의 완성 조건으로 인해..
[29일차] Join 용어에는 어떤 것이 있을까? SQL 작성순서 및 실행순서 1 SELECT 5 2 FROM 1 3 WHERE 2 4 GROUP BY 3 5 HAVING 4 6 ORDER BY 6 - FROM 절에서 작성하는 서브쿼리 외에 다른 절에서 서브쿼리를 작성하는 것은 피하는 것이 좋다. - 속도와 성능이 제대로 나오지 않을 때 좌변가공하지 않은 SQL로 변경하는 SQL 튜닝 작업을 실시한다. - WHERE 절의 좌별을 가공하기보다는 컬럼형으로 바꾸어주고, 서브쿼리를 활용하는 것이 오라클이 명령을 수행하기에 효율적이며 실행 순서를 생각하며 SQL을 작성하는 것이 중요! - IN : 테이블의 모든 컬럼을 직접 비교하기 때문에 대량의 데이터를 조회하는 시점부터 문제가 생길 수 있음 - EXISTS : TRUE or FALSE를 조회하기 때문에 대량..
[28일차] Where - 서브쿼리 : 원하는 데이터 추출하기 단일행 서브쿼리 : 서브쿼리의 조회 결과 값의 개수가 1개인 서브쿼리 - 다중행 서브쿼리 : 서브쿼리의 조회 결과 값의 행이 여러 개인 서브쿼리 - EXISTS : 검색 결과에 최소한 하나 이상의 레코드가 존재하는지의 여부를 표현하며, 최소한 한 개의 레코드가 존재하면 참이 되고 그렇지 않으면 거짓 - IN : 특정 값을 포함하고 있는 행을 반환함 - GROUP BY만 서브쿼리가 없는 이유 : GROUP BY를 기준으로 어떠한 값을 산출할지 여부를 판단한 뒤 필터링하는 역할을 HAVING이 하므로 GROUP BY에는 서브쿼리를 사용할 필요가 없음 SELECT * FROM employees WHERE salary in ( select salary from employees where job_id = 'SA..
[27일차] FROM - 서브쿼리 : 원하는 데이터 추출하기 - rank함수는 rank( ) over(order by 컬럼)의 형식으로 사용되는데, 컬럼 값의 순서대로 순위를 매겨주는 컬럼을 만든다. - dense_rank함수는 공동 순위가 있을 경우 그 다음 순위를 건너뛰고 차례대로 순위를 매기는 rank함수와 달리 공동 순위 이후 그대로 순위를 산출한다. - from (쿼리)는 쿼리를 하나의 테이블로 간주하고 컬럼을 뽑아낸다. select b.직원이름 as 우수사원명, a.* from employees a left outer join ( select a.부서번호, a.직원이름, a.순위 from( select last_name||' '||first_name as 직원이름 , salary 급여 , department_id as 부서번호 , dense_rank()..
[26일차] 서브쿼리. 원하는 데이터 추출하기 - select절의 서브쿼리는 서브쿼리가 select절로 확장되었다고 해서 스칼라 서브쿼리라고 하며, 스칼라 서브쿼리는 출력되는 행수만큼 반복되어 실행됨 - over함수는 쿼리 결과 집합 내의 윈도우 또는 사용자 지정 행 집합을 정의 - partition by는 특정 열을 기준으로 데이터를 나누며, partition by를 지정하지 않으면 쿼리 결과 집합의 모든 행이 단일 그룹으로 취급됨 SELECT a.* , (SELECT sum(salary) as 전체급여 from employees) as 전체급여 , (SELECT round(avg(salary)) as 평균급여1 from employees) as 평균급여1 , round((SELECT avg(salary) as 평균급여2 from employees..