Computer Science
-
Spring boot 시작 시 database에 값 넣기.Computer Science/Spring boot 2022. 7. 17. 17:58
data.sql 파일을 만들어서 그 파일에 실행할 쿼리를 집어 넣는다. data.sql을 스프링 버전이 올라가면서 2.5 버전부터는 application property를 추가해주어야한다. sql: init: encoding: UTF-8 continue-on-error: true mode: always mode를 always 해야 적용이된다. 다만 만약에 table을 생성후 해당 sql을 실행하고 싶다면 jpa: show-sql: true hibernate: ddl-auto: create defer-datasource-initialization: true defer-datasource-initialization을 true진행을 하여야 table을 만든뒤 sql을 실행하게된다.
-
Jpa entity 다대다, 다대일, 일대다 설정하기.Computer Science/Spring boot 2022. 7. 15. 15:59
다대다의 경우를 통해 다대일과 일대다 모두를 구현. 다대다의 경우 many to many를 사용하는 것이 아닌 중간 table를 생성하고 (1대다 와 다대1) (다대1과 1대다)로 묶어서 진행한다. @OneToMany(mappedBy = "userEntity") private List teamUserEntityList; mappedBy는 상대 ManyToOne의 이름으로 사용한다. 외래키 권한이 상대방 쪽에 있다는 것을 의미한다. 1대다 구조는 단방향 보다는 양방향으로 진행하고 키 권한을 다 쪽에 두어 관리하도록 한다. @ManyToOne @JoinColumn(name = "userId") private UserEntity userEntity; JoinColumn에는 내가 사용할 외래키 id이름을 적으면..
-
MySQL Json type을 Jpa로 다루기Computer Science/Spring boot 2022. 7. 15. 15:43
우선 json타입을 다룰려면 새로운 타입이여서 해당 dependency를 추가해주어야한다. implementation 'com.vladmihalcea:hibernate-types-52:${hibernate-types.version}' @Type(type = "json") @Column(columnDefinition = "json") private Test jsonObject; @NoArgsConstructor @Getter public class Test { private Long id; private Long tt; public Test(Long id, Long tt) { this.id = id; this.tt = tt; } } 위에 처럼 진행하여도 {"id":1,"tt":2} 로 입력된다. @Type..
-
Spring boot CI/CD git action으로 aws ec2에 올리기.Computer Science/Spring boot 2022. 7. 9. 00:27
우선 바로 배포를 진행할 것이기 때문에 의존성을 모두 포함한 BootJar로만 Build를 진행합니다. 따라서 의존성을 제거하여 build하는 Jar는 skip해줍니다.(snapshot-plain.jar) jar{ enabled = false } build.gradle에 추가하여 진행합니다. s3에 대한 접근 권한을 받아오기 위해 AWS IAM을 생성해줍니다. 사용자를 생성해주고, 액서스 키 -> 기존 정책 직접 연결 -> AmazonEC2FullAccess, AmazonS3FullAccess, AWSCodeDeployFullAccess -> 키 생성 -> 액세스 키 ID, 비밀 액세스 키 secrets-actions에 등록 (EC2와 CodeDeploy는 S3에 파일을 저장하고 이 파일을 EC2에서 가..
-
Swagger AnnotationComputer Science/Swagger 2022. 7. 6. 15:20
@ApiModelProperty(example = "1") private Long matchId; 출력되는 class에서 해당 annotation을 넣어주면 example 값이 변동된다. 위 예시처럼 Long 이지만 String으로 넣어야하며 해당 값이 Long으로 변환되어 보여진다. @ApiResponses({ @ApiResponse(code = 200, message = "!!Success!!"), @ApiResponse(code = 400, message = "Bad Request"), @ApiResponse(code = 500, message = "Internal Server Error") }) 컨트롤러에 등록하는 annotation 각 코드별 의마하는 바를 알려준다. @ApiOperation(v..
-
Swagger UI 적용하기Computer Science/Swagger 2022. 7. 6. 15:15
implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' 2가지 gradle을 추가해준다. package com.lofserver.soma.config; import com.google.common.base.Predicate; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Bean; import org.s..
-
private subnet/EC2 접근 방법Computer Science/Aws 2022. 6. 28. 21:42
해당 EC2 키를 pem으로 다운-> 내부 키 값 복사 후 public EC2에 pem 생성-> 키가 오픈되어 있다고 안되는 경우가 있어서 권한 변경 chmod 400 key.pem -> ssh -i key.pem ec2-user@private ipv4 VPC -> NAT Gateways public subnet에 NAT Gateway 설정 라우팅 테이블 -> 해당 private subnet -> 라우팅 편짐 -> 라우팅 추가 대상 -> NAT Gateway load balaner설정 public subnet으로 설정이 된다. - internet gateway를 통해 통신이 가능한 것만 가능하기 때문이다. Security group 생성 -> Inbound (http, 0.0.0.0/0) -> liste..