자격증 공부 탓에 9월에 다 끝내려했던 소셜 로그인 인강을 이제서야 듣기 시작했다. ㅎㅎ
나에겐 이제 새 학기 시작이다 !
인프런에서 소셜 로그인 인강을 드디어 수강하기 시작했다. MySQL이며 Spring Boot며 언어 버전 설정 다시하고 새로 설치하느라 살짝 오래 걸렸다. Spring Boot는 Gradle 버전밖에 사용해보지 못 했는데, 이 인강에서는 Maven으로 다루기 때문에 일단 따랐다 ...
Java 17을 먼저 설치해둔 상태라 21로 변경했다. 여러 개의 버전을 선택하여 바꾸는 방법으로 두 가지가 있었다. 첫번째는 환경 변수의 Path에서 jdk 파일의 경로를 각각 입력해 원하는 버전을 더 상위에 위치시키는 방법이고, 두번째는 환경 변수의 JAVA_HOME에 원하는 Java 버전의 경로를 입력한 후, Path에서 %JAVA_HOME%\bin 을 입력해두는 방법이다. 매번 헷갈렸었는데 이번 기회에 알게 되었다.
Maven 기반으로 Spring Boot 프로젝트를 생성했다. 소셜 로그인에 대해 다루기 때문에 의존성으로 OAuth2 Client와 Spring Security를 추가하였다. 프로젝트를 생성 후, 압축 파일을 풀어 IntelliJ로 실행했다. 그러나 Maven의 버전과 Java 21의 버전이 서로 호환되지 않아 에러가 발생했다. 해결은 간단했다. pom.xml 파일에서 <properties>를 찾아 아래와 같이 마지막 두 줄만 추가하니까 해결 됐다.
<properties>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
pom.xml 파일에서 <dependencies> 블록 아래에 아래와 같은 코드를 삽입하니 해결 됐다.<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
pom.xml 파일을 수정하고 저장 후 다시 로드할 때엔 오른쪽은 Maven 탭에서 '모든 Maven 프로젝트 다시 로드'를 클릭한다.여름 학기에 진행했던 EduScript를 양 교수님께서 목요일에 사용해보고 싶다고 하셔서 중국어 자막 실행을 테스트 했다. 현재 미니 PC 백그라운드에서 서버를 실행하고 로그를 메모장(.txt)에 출력하고 있다.
이때 발생한 문제는 메모장의 인코딩 방식이었다. 예전에도 디버깅 로그에 작성된 이모티콘 때문에 실행이 안된 적이 있다. 그러나 이번엔 중국어 문자를 메모장에 ANSI 방식으로 입력할 수 없어 발생한 에러였다.
그러니까 아래와 같은 흐름이다. 처음에 로그를 utf-8로 저장되도록 .bat 파일을 수정해보았으나, 아무래도 운영체제의 기본 방식이 ANSI로 고정되어 있어 .bat 파일을 아무리 수정해도 해결되지 않았다.
① [클라 -> 서버] 음성 전송
② [서버] STT 변환 + 번역
③ [서버] 메모장에 로그 출력 -> 인코딩 에러
④ [서버 -> 클라] 번역 텍스트를 출력하던 중 번역 중단