⚙️ backend 11

[IntelliJ] java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 해결

직접 받은 ojdbc8.jar 드라이버로 커넥션을 얻다가 이런 오류가 발생하면 드라이버를 찾을 수 없다는 말 입니다. 인텔리제이에서는 다음과 같이 해결합니다. 1️⃣ Project Structure 열기 툴바에서 Files > Project Structure 를 연다. (Mac 단축키 : cmd + ; ) 2️⃣ Modules에 의존 라이브러리 추가 Project Settings > Modules > Dependencies > + > JARs or Directories ... 에서 직접 jar을 추가해줍니다. 3️⃣ 커넥션 확인 위와 같이 DAO의 구현체에 샘플 코드를 작성하여 실행해보았습니다. 드라이버를 정상적으로 로드하고 JDBC를 잘 연결했다면 오류가 캐치되지 않고 "Connection Succes..

[Oracle] 함수

단일 행 함수 행 당 하나의 결과를 반환 SELECT, WHERE, ORDER BY절에서 사용 데이터 타입 변경 가능 중첩 가능 문자 함수 함수 설명 CHR(65) / ASCII('A') 문자 / ASCII LOWER('HELLO WORLD') / UPPER('hello world') 소문자 / 대문자 INITCAP('the quick brown fox') 첫 글자만 대문자로 변환 LPAD('123', 5, '0') 00123 / RPAD('123', 5, '0') 12300 왼쪽 / 오른쪽에서 문자열 LTRIM(' hello') / RTRIM('hello ') 왼쪽 / 오른쪽 공백 제거 REPLACE('hello world', 'l', 'z') hezzo worzd 문자열 치환 SUBSTR('hello..

Day05. 자바 프로그래밍 기본

목차자바 기본 문법Stringif (str1 == str2) // 주소값 비교if (str1.equals(str2)) // 문자열 비교new 키워드 유무에 따른 차이new 로 생성되면 무조건 객체를 새로 만든다 ex) String str1 = new String(”예시”);new 로 생성되지 않으면new 없이 생성된 것 중 값이 같은게 있는지 확인하고같은게 있으면 그곳을 똑같이 가리킴String은 불변/상수이다. ⇒ 값 변경 불가String str = "kim";str = "lee";=을 기준으로 오른쪽이 먼저 일어난다. 따라서 “lee” 스트링(객체)가 생성되고 str이 가리키고 있던 “kim”을 끊은 뒤 “lee”를 가리킨다. 이때, 원래의 자원을 더이상 쓰지 않으면 gc(garbage collect..

Day04. 자바 프로그래밍 기본

목차Object Oriented ProgrammingEncapulattion(캡슐화-은닉)외부에서 사용자가 속성을 직접 조회, 수정할 수 없도록 제한개발자가 만들어 주는 대로만 사용할 수 있도록 메소드 제공 → setXxx, getXxx관례) 생성자 밑에 작성setXxx필드를 수정한다작성법modefier ⇒ publicreturntype ⇒ voidmethodName ⇒ setXxx()parameter ⇒ Exist!왜 쓰지?메소드이니까 기능을 만들 수 있다! 유저의 예상치 못한 상황을 제어.⇒ 예외 처리해서 프로그램의 라이프 사이클이 원하는 방향으로 흘러가도록.public void setAge(int age) { if (age > 18) this.age = age;}getXxx필드를 조회한다작성법m..

Day03. 자바 프로그래밍 기본

목차자바 기본 문법Overloading하나의 class 내부에 이름이 같은 method가 여러 개 있는 것하나의 method 이름을 가지고 기능을 다르게 구현작성 규칙modifier(접근 제한자)는 같아도 달라도 상관 없음returnType 같아도 달라도 상관 없음method 이름은 반드시 같아야 함!매개변수는 순서 or 타입 or 개수 셋 중 하나는 달라야 함!예) System.out.println()public void println()public void println(boolean x)public void println(char x)public void println(int x)public void println(long x)public void println(float x)public void ..

Day02. 자바 프로그래밍 기본

tip💡 mac의 finder에서 숨김 폴더 보기 command+shift+.자바 기본 문법Method작성 방법/* syntax */modefiers returnType methodName(parameters) { [return 가지고 나갈 값;] // [생략 가능]}modefiers(0개 이상) 제한자access modefier 접근 제한자public 어디서나 아무나protected 폴더가 달라도 상속관계면 어디서나( ) 같은 패키지라면 아무나private 하나의 객체 안에서만. 이걸 붙여주면 은닉=캡슐화기타 제한자static 객체 생성 없이 접근final 상속, 오버라이딩 금지abstractsyncronizeddefaultreturnType 반환 데이터타입void 리턴 값이 없다primitive t..

[Java] Google Java Style Guide - 5. Naming

이 글은 구글 자바 스타일 가이드의 네이밍 파트를 번역・정리한 글입니다. 목차 모든 식별자에 대해 ASCII 문자 또는 숫자로만 작성되어야 하며, 정규식 [\w+]에 매치되는 모든 이름이 가능합니다. \w 는 [A-z0-9_]와 동일. 특별한 접두사나 접미사를 붙일 필요가 없으면 다음과 같이 이름 짓지 않습니다. name_ mName s_name kName 패키지 이름 패키지 이름은 소문자와 숫자만 사용합니다(_ 없음). 연속되는 단어는 간단히 연결합니다. com.example.deepSpace ❌ com.example.deep_space ❌ com.example.deepspace ✅ 클래스 이름 클래스 이름은 대문자로 작성됩니다. UpperCamelCase 클래스 이름은 일반적으로 명사 또는 명사구입니..

⚙️ backend 2023.05.01

[Spring] Google Speech-to-Text로 오디오 파일을 스크립트로 변환하기

Google Cloud Platform에서 제공하는 Speech-to-Text API를 활용하여 10초 이내의 오디오 파일을 스크립트로 변환합니다  내 프로젝트 환경JVM 17.0.6Gradle 7.6Springboot 3.0.2시작하기 전에프로젝트에서 Speech-to-Text 사용 설정1. 프로젝트 만들기기존 프로젝트를 선택하거나 새 프로젝트를 만듭니다.프로젝트 만들기를 선택합니다프로젝트 이름, 조직을 입력하고 만들기를 선택합니다프로젝트가 생성되었습니다2. 결제 계정 등록좌측 상단의 햄버거 버튼을 누르면 결제 개요를 볼 수 있습니다결제 개요에서 모든 상태 확인을 선택합니다계정 관리를 선택합니다저는 만들어둔 결제 계정이 있습니다. 결제 계정이 하나도 없다면 생성하고 프로젝트에 연결해줍니다.3. 서비스 ..

[MySQL] UNION을 사용하여 여러 집합을 하나의 집합으로 결합하기

SQL에서 UNION 연산자는 두 개 이상의 SELECT 문의 결과를 하나의 집합으로 결합하는 데 사용됩니다. 각 SELECT 문의 결과는 대응하는 필드의 이름과 타입이 같아야 합니다. # 예시 쿼리 SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 1 UNION SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 2; 이 예제에는 employees 테이블에서 employee_id, first_name 및 last_name 열을 선택합니다. 첫 번째 SELECT 문은 department_id 1의 직원만 선택하고, 두 번째 S..

[MySQL] REGEXP 함수를 이용하여 숫자 또는 문자만 추출하기

Extracting Numbers or Non-Numeric Characters with MySQL.MySQL의 REGEXP 함수를 사용하여 문자열에서 숫자를 추출할 수 있습니다.# 쿼리 예시SELECT REGEXP_REPLACE('abc123def456ghi789', '[^0-9]+', '') AS numbers;param1) 입력 문자열param2) [^0-9]+ : 숫자가 아닌 모든 문자와 일치하는 정규식param3) 입력 문자열에서 숫자가 아닌 모든 문자를 대체하는 빈 문자열# 결과'123456789'반대로 정규식 [0-9]+으로 숫자만 추출할 수 있습니다.MySQL에서 REGEXP_REPLACE 함수를 사용하여 문자열에서 모든 숫자를 제거하고 숫자가 아닌 문자만 가져올 수 있습니다.# 쿼리 예시..

[Spring] WebSocket을 사용하여 대화형 웹 애플리케이션 구축하기

웹소켓은 TCP 위에 있는 얇고 가벼운 계층입니다. 따라서 메시지를 포함하기 위해 "하위 프로토콜"을 사용하는 데 적합합니다. 이 포스트에서는 Spring과 함께 STOMP 메시징을 사용하여 대화형 웹 애플리케이션을 만듭니다. STOMP는 하위 수준 WebSocket 위에서 작동하는 하위 프로토콜입니다. spring.io의 포스트를 참고하여 작성하였습니다. Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io 만들 것 사용자 이름이 포함된 메시지를 수락하는 서버를 구축합니다. 이에 대한 응답으로 서버는 클라이언트가 가입한 대기..