[Spring] 파이썬 서버로 api 통신하기
·
Spring/mvc
파이썬 처리가 필요한 이유 현재 졸업프로젝트로 백엔드를 담당하고 있고, 스프링을 사용하기로 결정했다. 우리의 비즈니스 로직 중 STT와 키워드 추출이 필요한데, 이는 파이썬 쪽에서 처리가 필요하다. 처음에는 다음과 같이 처리를 하였다. 1. 파이썬 파일 실행 (ProcessBuilder, Process) 자바에서 ProcessBuilder를 사용하면, 컴퓨터의 python을 실행시킬 수 있다. 코드는 다음과 같다. package site.atkproject.sttservice.util; import lombok.NoArgsConstructor; import java.io.*; @NoArgsConstructor public abstract class PythonFileManager { protected S..
[Spring] Validation
·
Spring
유효성 검사 유효성 검사를 해야하는 이유는 클라이언트가 입력한 값이 서버에서 적절하게 이해하고 처리해줄 수 있는지 사전 검사해주는 역할이라 보면 된다. 스프링 부트에서는 아래의 라이브러리를 추가해주면 어노테이션만으로 아주 쉽게 유효성 검사를 할 수 있다. 커스텀이 필요하면 그때는 만들어주면 될거 같다. implementation 'org.springframework.boot:spring-boot-starter-validation' 유효값 검증을 위해 validation을 사용하는데, 다음과 같은 어노테이션들을 제공한다. 어노테이션 설명 @NotEmpty NULL 체크, 문자열의 경우 길이 0인지 검사 @NotBlank NULL 체크 및 문자열의 경우 길이 0 및 빈 문자열(" ") 검사 @Length(m..
[JPA] Spring Data JPA에서 바로 DTO를 받아보자
·
Spring/jpa, db
게시판에서 좋아요, 싫어요 기능을 구현하려고 하고 있다. Spring Data JPA를 활용해서 나는 인터페이스만 구현해서 아주 편안하게 값을 가져와서 활용하고 있다. 쉬운 쿼리들은 메서드 네임만 잘 조합해도 되는데, 나는 이제 좋아요, 싫어요 개수를 구하고 싶다. 즉, 쿼리에서 count()를 이용해서 갖고 올려고 하는 것이다. 찾아보면 메서드 네임으로도 있을거 같긴 한데.. 일단은 JPQL을 통해서 갖고오는 방법을 정리해 보겠다. 대학 팀플들 땜에 프로젝트 글 정리를 못했는데, 조만간 다 정리해서 올리겠다 ㅠㅠ 좋아요 엔티티 먼저 좋아요 엔티티를 구성했다. @Getter @NoArgsConstructor @Entity public class Likes { @Id @GeneratedValue priva..
[Spring Boot] Devtools를 써보자
·
Spring
로컬 테스트 시 불편한 점 로컬에서 스프링 애플리케이션을 실행할 때 어떻게 하는가? 물론 TDD를 활용하여 테스트를 하는게 제일 베스트지만, 나같은 초보는 아직까지 브라우저에서 화면을 보는 것을 편-안해한다. (안 좋은 습관?이라니 추후 TDD에 익숙해지자) 하지만, 코드를 수정 후 애플리케이션을 다시 실행시키려면 이는 매우 번거롭다. 또 DDL-AUTO를 create 등으로 해두면, 데이터가 많을 시 은근 걸리는 시간도 거슬린다. 이럴 때 쓸 수 있는게 Devtools이다. 대표 기능 대표 기능은 다음과 같다. Automatic Restart: classpath에 있는 파일이 변경될 때마다 애플리케이션을 자동으로 재시작해준다. 개발자가 소스 수정 후 애플리케이션을 재실행하는 과정을 줄여 생산성을 향상시..