분류 전체보기90 MySQL, Spring 프로젝트 연동시 예약어 문제 언젠가는 상위 버전으로 업그레이드할 수 있으므로 향후 예약어도 살펴보는 것이 좋습니다. 이러한 단어는 상위 버전의 MySQL을 다루는 설명서에서 찾을 수 있습니다. (MySQL 공식 문서 9.3 Keywords and Reserved Words 중)(DeppL 번역) 일반적으로 group 이라는 이름은 대표적인 예약어 중 하나이다. 때문에 JPA를 배울때도 예제 프로젝트에서 @Table(name = "groups") 라는 애노테이션은 항상 따라다녔다. 이번 프로젝트에도 Group 이라는 엔티티가 포함되어 있어 @Table(name = "groups") 애노테이션을 통해서 테이블 이름에 예약어를 사용하지 않도록 하였고, H2 내장 DB에서도 잘 작동되는 것을 확인하였다. Caused by: java.sql.. 2023. 4. 12. [Spring REST Docs] 활용하기 1. 문서 커스텀하기 @Data public class MemberCreateRequest { @NotNull @Size(min = 2, max = 20) private String name; @Size(min = 2, max = 20) private String nickname; @Max(value = 200) private int age; } @Data public class PostsGetRequest { @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private LocalDate date; @Size(min = 1) private String title; private int page; private int size; public PostsGetRequest.. 2023. 4. 10. [querydsl] in절 동적 쿼리 작성 주의점(1=2) 프로젝트를 진행하며 querydsl로 동적 쿼리를 처리해주고 있다. 태그와 같은 기능을 위해서 여러개의 태그를 가진 게시글을 검색해주기 위한 in 절을 사용하고 있다. 이때 제대로 처리를 해주지 않아 문제가 발생했다. private BooleanExpression studyIdIn(List studyIds) { return studyIds != null ? postStudy.study.id.in(studyIds) : null; } 태그를 위한 검색 조건 중 studyIds라는 필드가 있는데 이것이 null 인 경우에는 위 메서드에 의해서 null 값이 반환되어 where 절에서 무시된다. 테스트시에도 항상 studyIds 필드에는 null을 지정하거나, id들을 지정해서 넣었기 때문에 문제가 발생하지 않.. 2023. 4. 3. GCP 인스턴스와 도메인 연결하기 개인 프로젝트에서 세션 인증 방식을 사용하고 있다. 젠킨스를 이용한 원격지 배포까지 성공적으로 수행하였으나, 로컬에서 프론트엔드를 띄워서 접속 후 로그인시 세션이 유지되지 않는 문제가 발생하였다. 이를 해결하기 위해서는 SSL 인증서를 발급받아 HTTPS 통신을 수행해야 한다는 것을 인지하였다. 영역 만들기를 통해 새로운 도메인 영역을 만들어준다. 도메인 이름은 가비아에서 제일 저렴한 것으로 구매했다. NS 유형을 선택하고 가비아 네임서버 설정을 GCP로 변경해준다. 가비아의 유의사항에 따르면 네임서버 변경에 1~2일 정도 시간이 소요된다고 한다. 1시간 정도 후에 nslookup -type=ns {도메인} 명령어를 통해 네임서버가 정상적으로 바뀐 것을 확인하였다. 2023. 4. 1. nginx 설치 및 https 설정(GCP) $ sudo y nginx $ sudo systemctl start nginx 새로운 인스턴스에 nignx를 설치하고 기동한다. $ sudo vi /etc/nginx/nginx.conf 로드밸런싱을 위해 설정파일 연다. upstream {그룹이름} { server {IP:PORT}; server {IP:PORT}; } server { .... location / { proxy_pass http://{그룹이름}; } .... } upstream에 로드 밸런싱할 서버 목록을 입력한다. 로드 밸런싱을 default로 라운드로빈으로 이루어진다. 작성이 완료되면 $ sudo systemctl reload nginx 명령어로 nginx를 재기동시킨다. nginx 서버에 접속시 오류가 발생하면 $ sudo tail .. 2023. 4. 1. jenkins 원격지 배포하기 publish over ssh를 사용하기 위해 우선 개인키, 공개키 쌍을 만들어야 한다. $ sudo mkdir .ssh $ sudo ssh-keygen .ssh 디렉터리 하위에 id_rsa id_rsa.pub 개인키, 공개키 쌍이 생성된 것을 확인할 수 있다. 다음 원격지의 배포를 진행하기 위해 새로운 가상머신 인스턴스를 생성해준다. jenkins의 플러그인 탭에서 publish over ssh를 설치한다. 이후 시스템 설정 탭에서 추가 정보를 입력해준다. 1. Key 에는 발급받은 개인키를 붙여넣어준다. 2. SSH 서버를 추가하고 Name에는 원하는 이름 3. Hostname에는 대상 인스턴스의 내부 IP 4. Username에는 계정 이름 5. remote directory는 파일이 전송되기를 원.. 2023. 3. 31. 이전 1 ··· 10 11 12 13 14 15 다음