2022/12 22

[SQL] 트랜잭션 격리 수준(isolation level)

트랜잭션 격리 수준 트랜잭션 격리 수준(Transaction Isolation Levels)은 고립도와 성능의 Trade-off 를 조절 트랜잭션 격리 수준이란 트랜잭션들끼리 얼마나 고립되어있는지 (잠금수준)를 나타내는 것으로 특정 트랜잭션이 다른 트랜잭션에 의해 변경된 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 임 READ UNCOMMITTED(트렌젝션 레벨 0) : 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있음 READ COMMITTED(트렌젝션 레벨 1) : 다른 트랜잭션에서 커밋되 내용만 참조할 수 있음 (ORACLE) REPETABLE READ(트렌젝션 레벨 2) : 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있음 (MySQL) SERIALIZABLE(트렌젝션 레벨 3..

프로그래밍/SQL 2022.12.30

[JPA] JPA 날쿼리 사용하기(nativeQuery = true)

jpa 날쿼리 사용하기 위한 방법 nativeQuery 속성 true로 변경 sql의 함수를 사용하고 싶은데 jpql로 어떻게 바꿀까하다가 날쿼리를 사용해보기로 함 아래와 같이 사용 가능 @query(value = "...", nativeQuery = true) @query(value = "select group_concat(sc.이메일) " + "from student st inner join school sc on st.학교번호 = sc.학교번호 " + "where st.학생이름 = :학생이름", nativeQuery = true)

프로그래밍/JPA 2022.12.29

[SQL] 조회된 ROW가 없을 때, RETURN 하는 방법

조회된 ROW가 없을 때, RETURN 하는 방법 일반적으로 조회 시 조건절에 부합하는 데이터 ROW가 없을 경우 조회되지 않음 그러나 JOIN 등 특수한 경우 조회되는 ROW가 없더라도 반환시켜야 하는 일이 생김 이러한 경우 간단하게 GROUP BY를 통하여 RETURN이 가능함 select u.user_id, o.order_number, uc.coupon_code from order o inner join user u on (o.user_id = u.user_id) inner join user_coupon uc on (u.user_id = uc.user_id) group by u.user_id;

프로그래밍/SQL 2022.12.28

[Mac OS] ls: .: Operation not permitted error 해결 방법

ls: .: Operation not permitted error 해결 방법 iTerm이나 Terminal에서 ls 명령어를 실행했더니 ls: .: Operation not permitted 에러가 발생함 이를 해결하기 위해서는 디스크 권한을 응용프로그램에 줘야함 1️⃣ mac 왼쪽 상단 🍎 아이콘 클릭 > 시스템 환경설정 클릭 2️⃣ 보안 및 개인 정보 보호 🏠 클릭 3️⃣ 개인 정보 보호 탭 클릭 > 전체 디스크 접근 권한 클릭 4️⃣ 자물쇠🔒 클릭 > 비밀번호 입력 > iTerm 선택 > 터미널 재시작 만약 목록에 없다면 +를 클릭하여 추가해주기 접근 권한을 주면 에러가 해결됨 👍

OS/Mac 2022.12.27

[MySQL] 컬럼명 변경, 컬럼 순서 변경, 컬럼 타입 변경, 컬럼 추가, 컬럼 삭제

컬럼명 변경 ALTER TABLE 테이블명 CHANGE 기존컬럼명 변경할컬럼명 컬럼타입; ALTER TABLE user CHANGE user_email email varcher(256); 컬럼 순서변경 ALTER TABLE 테이블명 MODIFY 순서변경할컬럼명 컬럼타입 AFTER 앞에오는컬럼명; ALTER TABLE user MODIFY nickname varchar(64) AFTER user_id; 컬럼 디폴트값 변경 ALTER TABLE 테이블명 ALTER COLUMN 변경할컬럼명 SET DEFAULT 디폴트값; ALTER TABLE product ALTER COLUMN is_usable SET DEFAULT 1; 컬럼 타입변경 ALTER TABLE 테이블명 MODIFY 컬럼명 병경할컬럼타입; ALT..

프로그래밍/SQL 2022.12.26

[Java] List를 콤마(,)로 연결하여 하나의 문자열 만들기

List를 콤마(,)로 연결하여 하나의 문자열 만들기 String.join()으로 콤마로 연결된 문자열 변환 Java8에서 제공하는 String.join(delimiter, list)는 인자로 전달된 delimiter로 리스트의 요소를 연결하여 하나의 문자열을 생성함 예시👇 import java.util.Arrays; import java.util.List; public class Example1 { public static void main(String[] args) { List myList = Arrays.asList("Hello", "World", "Java"); String str = String.join(",", myList); System.out.println(str); } } Output: ..

[Java Error] java.time.format.DateTimeParseException: Text '5:00' could not be parsed at index 0

Java DateTime 에서 발생할 수 있는 에러 - java.time.format.DateTimeParseException: Text '5:00' could not be parsed at index 0 - java.time.format.DateTimeParseException: Text '24:00' could not be parsed: Invalid value for HourOfDay (valid values 0 - 23): 24 원인 java dateTime은 00:00 ~23:59로 이루어져 있어야 하는데 1️⃣ 01:00이 아닌 1:00 인 경우 (1:00~9:00 모두 마찬가지) 2️⃣ 00:00 이 아닌 24:00인 경우 exception을 발생시킴 해결 방법 00:00 ~ 23:59 사이..

[Git] git stash 명령어

git stash 명령어 사용법 실무에서 브랜치 이동시에 자주 사용했던 명령어 현재 작업을 일시적으로 저장 save는 생략 가능 save 뒤에 메시지 입력해서 저장 가능 git stash [save] 일시적으로 저장해 둔 작업 목록 확인 git stash list 일시적으로 저장해 둔 작업 되돌리기 인수를 지정하지 않으면 가장 최근에 저장된 작업 복원 stash@{1}과 같이 작업을 선택하여 복원 가능 git stash pop 일시적으로 저장해 둔 작업 삭제하기 인수를 지정하지 않으면 가장 최근에 저장된 작업 삭제 stash@{1}과 같이 작업을 선택하여 삭제 가능 git stash drop 일시적으로 저장해 둔 작업 모두 삭제 git stash clear

형상관리/Git 2022.12.19