분류 전체보기 47

[SpringBoot] GPT 3.5 AI 사용하기

생산형 AI 기능을 쓰고 싶은 개발자는 어디에나 있을 것이다. 오늘은 Spring에서 AI를 사용하는 법을 알아보자. AI 기능을 빌려오는 느낌이고 직접 구현이 아니다. 참고 바란다. 1. 의존성 추가 implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter:0.8.0-SNAPSHOT' repositories { mavenCentral() maven { url 'https://repo.spring.io/milestone' } maven { url 'https://repo.spring.io/snapshot' } } 해당 의존성은 Spring Boot 프로젝트에 OpenAI와 연동할 수 있는 기능을 제공한다. 2. OpenAI A..

springboot 2024.03.24

[SpringBoot] KOMORON을 이용해서 형태소 분석하기

프로젝트를 진행하다가 워드 클라우드를 구현해야 할 일이 생겼다. 워드 클라우드란?? 처음 접근 알고리즘을 직접 짜려고 시도했다. 단순히 단어의 개수를 반환하면 된다고 생각했기 때문이다. 그 반환 단어를 프론트에서 받아서 크기를 기준으로 워드 클라우드를 구성하면 되지 않을까? 라고 생각했다. 하지만 우리의 서비스는 문장을 받는 '메모'이다. 때문에 위에 내가 직접 알고리즘을 짜는 방법은 불가능했다. 라이브러리 발견 그렇게 구글링을 하다가 https://github.com/shineware/KOMORAN (코모론) 라이브러리를 발견했다. 해당 라이브러리는 한국 형태소를 분석하는 기능을 가지고 있는 신기한 라이브러리였다. 명사만 필요한 나의 서비스에 정확히 일치했다. 구현 1. 의존성 추가 repositori..

springboot 2024.03.23

[SpringBoot] 인텔리제이 안에서 데이터베이스 접근하기

MysqlWorkbench로 접근하는 게 귀찮기도하고, 앱도 그리 좋지 않은 거 같고, 수정도 힘들고...... 인텔리제이로 데이터베이스를 접근해보자. - 오른쪽에 나와있는 DataBase 버튼을 클릭한다. - 자기가 사용하는 툴을 선택한다. 필자는 MySQL - user와 비밀번호를 입력한다 - 이제 들어와지면 끝났다. 자신의 database 이름으로 들어가면 테이블과 컬럼들을 확인할 수 있다.~~ 테이블을 더블클릭하면 안에 데이터를 확인할 수 있을 것이다. 추가로 배포한 서버도 IP주소와 DB아이디, 비밀번호만 알면 똑같이 들어가서 확인 가능하다!

springboot 2024.03.23

[GCP] GCP VM인스턴스 안에서 파일을 읽는 방법

프로젝트를 진행하다가, 파이어베이스 정보가 있는 worryboxFirebaseKey.json 파일을 깃허브에 올리지 않게 되었다. 그러다가 갑자기 의문점이 듦. "원래 배포 서버에서는 git pull 땡기고 실행하면 되는데, 저 json 파일은 pull 땡겨도 안 나오네?" 그렇게 되서 생각난 해결방법은 총 2가지 1. 환경변수로 넣기 2. 직접 경로 안에 파일 만들어서 넣기 json 파일은 환경변수로 넣을 수 없어서 처음 해보는 2번 방법으로 하도록 마음 먹었다. 일단 git에 올려둔 파일의 경로를 보자! @Configuration public class FirebaseConfig { @PostConstruct public void init(){ try{ FileInputStream serviceAcc..

server 2024.03.21

[SpringBoot] Swagger 간편 어노테이션 정리

앞 글에 연계해서 스웨거 어노테이션을 써 보자~ 1. RequestDto @NotBlank(message="메모 내용을 입력해야 합니다.") @Size(min = 1, max = 60, message = "1 글자 이상, 60 글자 이하가 아닙니다.") @Schema(description = "걱정 메모 내용", example = "너무 힘들어요.") @NotNull private String worryText; 우리가 봐야 할 어노테이션은 @Schema다. 딱 보면 알겠지만, 해당 Dto를 사용하게 될 시에 스웨거를 보면 "worryText" : "String"이 아닌 아래와 같은 문구로 대체된다. 프론트가 보고 이해하기 더 쉽다!! 2. Controller @Operation(summary = "걱정..

springboot 2024.03.21

[SpringBoot] Swagger 사용법

고민하게 된 이유 처음 프로젝트를 할 때는 아무 생각 없이 코드만 적는, 프론트를 생각하지 않는 방법으로 진행했다. 그러다가 swagger를 알게 되면서, 각종 오류 메세지와 api를 간편하게 전달할 수 있다는 사실을 알았다. 스웨거 (Swagger)란? 스웨거는 Web API 문서화를 위한 도구이다. 스웨거 홈페이지에서는 스웨거를 OAS(Open API Specification)이라고 소개하고 있다. 말 그대로 API들이 가지는 명세(Spec)을 관리하기 위한 프로젝트이다. Web API를 수동으로 문서화 하는 것은 굉장히 힘든일인데, Web API의 스펙이 변경되었을 때 문서 역시 변경되어야 하는데 이를 유지하는 것이 쉽지 않다. Swagger를 사용하면 Web API가 수정되더라도 문서가 자동으로..

springboot 2024.03.21

[Mysql] GCP VM 인스턴스 서버에서 배포후, 내 로컬에서 데이터베이스 확인하기

이걸 고민하게 된 이유 프로젝트를 GCP 서버에 배포하다가 든 의문점이 있다. 데이터베이스 안에 있는 내용을 어떻게 확인할 수 있지? 그 방법을 함께 알아봅시다.. 저 바보라 굉장히 친절하게 정리하니까 잘 따라오시면 됩니다..! 1. gcp 에서 3306포트를 열어줍니다. VPC 네트워크 -> 방화벽 ->방화벽 규칙 만들기 수신, 허용 IP: 0.0.0.0/0, tcp포트 3306으로 만들기 2. 원격허용 되었는지 확인 2-1 GCP 인스턴스에서 mysql -uroot -p로 mysql서버 접속하기. 2-2 mysql DB로 바꾸기(여기에 user정보가 있음) mysql> use mysql; 2-3 원격 접속 허용 확인 mysql> (혹시 안되면 password빼기) host에 %이면 모든 아이피에서 접..

server 2024.03.21