전체 글 썸네일형 리스트형 h2-console 연동하기 Memory application.properties spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:db이름 spring.datasource.username= sa spring.datasource.password= spring.datasource.driver-class-name=org.h2.Driver Server DB 생성 DB 생성 후 이후 접속 application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/DB이름 spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-cla.. 더보기 GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-3(Appspec파일 작성,배포 스크립트 작성,github action workflow 작성 및 배포확인) Appspec파일 작성 CodeDeploy에서 배포를 위해 참조할 AppSpec파일을 작성해야합니다. AppSpec파일은 파일에 정의된 hooks를 통해 배포를 관리하는데 사용됩니다. AppSpec파일은 루트 디렉토리에 위치해야합니다. AppSpec Refrence 1.appspec.yml 위치 2.appspec.yml version: 0.0 os: linux files: - source: / destination: /home/ubuntu/app overwrite: yes permissions: - object: / pattern: "**" owner: ubuntu group: ubuntu hooks: AfterInstall: - location: scripts/stop.sh timeout: 60 run.. 더보기 GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-2(S3 생성,CodeDeploy 생성,IAM 사용자 추가) S3생성(S3->버킷->버킷 만들기) (1)버킷이름,AWS리전,객체 소유권 설정 버킷이름과 AWS 리전을 선택해줍니다. 객체 소유권은 ACL 비활성화됨을 선택해줍니다. (2) 퍼블릭 액세스 차단 설정 (3) 버킷 버전관리,기본암호화 설정 버킷버전관리,기본암호화 설정을 하고 버킷을 생성합니다. CodeDeploy 애플리케이션 생성 (CodeDeploy->배포->애플리케이션 생성) 1.애플리케이션 이름 및 컴퓨팅 플랫폼 설정 원하는 애플리케이션 이름과 컴퓨티플랫폼은 EC2/온프레미스로 설정합니다. CodeDeploy 배포그룹 생성 1.애플리케이션 배포그룹 생성 위에서 생성한 애플리케이션으로 들어가 배포그룹생성을 합니다. 2. 배포그룹 이름,서비스 역할,배포 유형 원하는 배포그룹 이름을 입력하고 서비스역할에는.. 더보기 GithubAction과 CodeDeploy를 활용한 CICD:EC2에 SpringBoot 배포-1(배포과정,IAM 역할설정,EC2 생성 및 설정) 배포과정 코드를 작성한 뒤, Github에 push를 한다. master 브랜치에 push가 발생하면, Github Actions이 실행된다. Github Actions는 빌드를 하여 코드에 문제가 없는지 확인한다. Github Actions는 프로젝트 파일을 압축하여 AWS S3로 전송하고, CodeDeploy에게 배포를 요청한다. CodeDeploy는 S3로부터 zip 파일을 받아 배포를 진행한다. IAM 역할설정 1.EC2에서 S3 접근 권한 IAM 생성 (1) IAM -역할-역할만들기 (2)AmazonS3FullAccess 권한 추가 (3)역할 이름 및 권한 확인 2.CodeDeploy 역할 생성 (1) IAM-역할-역할 만들기 (2) AWSCodeDeployRole 권한 확인 (3) 역할 이름 .. 더보기 JPQL DTO Select List result = em.createQuery("select new jpql.MemberDto(m.username,m.age) from Member m", MemberDto.class) .getResultList(); for (MemberDto memberDto : result) { System.out.println("Username = " + memberDto.getUsername()); System.out.println("age = " + memberDto.getAge()); } new 명령어를 사용하여 패키지를 포함한 전체클래스명을 입력하여 사용한다. 순서와 타입이 일치하는 생성자가 필요하다. 페이징 List result = em.createQuery("select m fr.. 더보기 값 타입 컬렉션 값 타입 컬렉션 사용 public class Member { @Id @GeneratedValue private Long id; private String username; private int age; @ElementCollection @CollectionTable(name = "FAVORITE_FOODS",joinColumns = @JoinColumn(name = "MEMBER_ID")) @Column(name = "FOOD_NAME") private Set favoriteFoods = new HashSet(); @ElementCollection @CollectionTable(name ="ADDRESS",joinColumns = @JoinColumn(name = "MEMBER_ID")) private .. 더보기 임베디드 타입 임베디드 타입 정의 @Embeddable public class Address { private String city; private String street; private String zipcode; public Address() { } ... } @Embeddable 어노테이션을 사용하여 임베디드 타입을 정의할 수 있다. 임베디드 타입은 기본생성자가 필수로 있어야한다. 임베디드 타입 사용 @Entity @Table(name = "ORDERS") public class Order { @Id @GeneratedValue private Long id; private int orderAmount; @Embedded private Address address; ... } 임베디드 값타입을 사용하는 엔티티에 .. 더보기 프록시와 연관관계 관리 프록시 (1) 프록시는 실제클래스를 상속받아서 만들어지므로 타입 체크 시 instance of를 사용해야 한다 (2) 프록시 객체는 실제객체의 참조를 보관했다가 호출되면 실제객체의 메서드를 호출한다. (3) 프록시 객체는 처음 사용할 때 한번만 초기화 되며 초기화 될 때 실제 엔티티로 바뀌는 것이아니라 프록시 객체를 통해서 실제 엔티티에 접근 가능하다. (4) 영속성 컨텍스트에 프록시가 찾는 엔티티가 있으면 실제엔티티가 반환된다. (5) 찾는 엔티티가 영속성컨텍스트의 도움을 받을 수 없는 준영속 상태일 때 프록시를 초기화하면 예외가 발생한다. 연관관계관리 즉시로딩 public class TeamMember { @Id @GeneratedValue @Column(name = "TEAM_MEMBER_ID") .. 더보기 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음