[Java] Enum 사용법
2023. 1. 5. 20:37
프로그래밍/JAVA
Enum 사용법 Java Enum 타입은 일정 개수의 상수 값을 정의하고, 그 외의 값은 허용하지 않음 과거에는 특정 상수값을 사용하기 위해선 모두 상수로 선언해서 사용했음 public static final String MON = "Monday"; public static final String TUE = "Tuesday"; public static final String WED = "Wednesday"; 이렇게 사용하면 개발자가 실수하기도 쉽고 한눈에 알아보기도 쉽지 않음 또한 관련있는 값들끼리 묶으려면 접두어를 사용해서 점점 변수명도 지저분해짐 Enum 클래스는 이러한 문제점을 말끔히 해결해주는 굉장히 유용한 클래스입니다. 정의 public enum Day { MON, TUE, WED, THU, F..
[iTerm2] iTerm2 계정 정보 저장
2023. 1. 4. 20:00
OS/Mac
계정 정보 저장하기 iTerm2에 계정 정보를 저장해 놓으면 자동 로그인 연동이나 필요 시 계정 정보를 불러와 바로 입력할 수 있음 1️⃣ iTerm2에서 option + command + f 단축키 입력 2️⃣ "+" 버튼 클릭 > 계정 정보 명과 계정 정보 입력 한 뒤 Close 3️⃣ 계정 정보 필요 시 option + command + f 클릭하여 원하는 정보 간단하게 입력 가능
[JavaScript] if문 없애기
2023. 1. 3. 20:24
프로그래밍/JavaScript
if문 제거하기 중복된 if 조건들은 변경사항이 발생하면 프로젝트내에 모두 찾기하여 일일이 수정해야 하기 때문에 좋은 코드가 아님 이를 개선해보자 1. 개선 전 코드 function executePayment(paymentType) { if(paymentTpye === "KAKAO") { return "카카오 결제 처리" } else if(paymentType === "NAVER") { return "네이버 결제 처리" } else if(paymentType === "COUPANG") { return "쿠팡 결제 처리" } else if(paymentType === "PAYCO") { return "페이코 결제 처리" } else if(paymentType === "APPLE") { return "애플 ..
[Java] modelMapper 사용하기
2023. 1. 2. 20:03
프로그래밍/JAVA
modelMapper 서로 다른 클래스의 값을 한 번에 복사하게 도와주는 라이브러리로 어떤 Object (Source Object) 에 있는 필드 값들을 자동으로 원하는 Object (Destination Object) 에 매핑 시켜주는 라이브러리 사용을 위해서는 의존성 추가 필요 implementation 'org.modelmapper:modelmapper:2.4.2' 주로 DTO와 같은 클래스로 데이터를 받은 후 원하는 클래스(Entity)에 넣어줄 때, Getter/Setter를 이용해 필드를 복사/붙여넣기하는 작업을 거침 이 때, 매핑해야할 필드가 다른 경우도 빈번함 즉, 다른 모델의 Object를 매핑해줘야하는 작업이 발생할 수 있는데 이런 단점들을 해결하기 위한 라이브러리임 modelMappe..
[SQL] 트랜잭션 격리 수준(isolation level)
2022. 12. 30. 20:42
프로그래밍/SQL
트랜잭션 격리 수준 트랜잭션 격리 수준(Transaction Isolation Levels)은 고립도와 성능의 Trade-off 를 조절 트랜잭션 격리 수준이란 트랜잭션들끼리 얼마나 고립되어있는지 (잠금수준)를 나타내는 것으로 특정 트랜잭션이 다른 트랜잭션에 의해 변경된 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 임 READ UNCOMMITTED(트렌젝션 레벨 0) : 다른 트랜잭션에서 커밋되지 않은 내용도 참조할 수 있음 READ COMMITTED(트렌젝션 레벨 1) : 다른 트랜잭션에서 커밋되 내용만 참조할 수 있음 (ORACLE) REPETABLE READ(트렌젝션 레벨 2) : 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있음 (MySQL) SERIALIZABLE(트렌젝션 레벨 3..
[JPA] JPA 날쿼리 사용하기(nativeQuery = true)
2022. 12. 29. 21:29
프로그래밍/JPA
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)
[SQL] 조회된 ROW가 없을 때, RETURN 하는 방법
2022. 12. 28. 20:44
프로그래밍/SQL
조회된 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;
[Mac OS] ls: .: Operation not permitted error 해결 방법
2022. 12. 27. 20:41
OS/Mac
ls: .: Operation not permitted error 해결 방법 iTerm이나 Terminal에서 ls 명령어를 실행했더니 ls: .: Operation not permitted 에러가 발생함 이를 해결하기 위해서는 디스크 권한을 응용프로그램에 줘야함 1️⃣ mac 왼쪽 상단 🍎 아이콘 클릭 > 시스템 환경설정 클릭 2️⃣ 보안 및 개인 정보 보호 🏠 클릭 3️⃣ 개인 정보 보호 탭 클릭 > 전체 디스크 접근 권한 클릭 4️⃣ 자물쇠🔒 클릭 > 비밀번호 입력 > iTerm 선택 > 터미널 재시작 만약 목록에 없다면 +를 클릭하여 추가해주기 접근 권한을 주면 에러가 해결됨 👍