본문 바로가기
반응형

분류 전체보기714

AWS/Docker 클라우드 패스트캠퍼스 챌린지 26일차 [Front-end 화면개발 1,2] layout과 footer를 디자인된 사이트에서 필요한 코드를 가져다가 넣는다. Material Design Lite에서 가능하다. TAB을 2개 만든다. TAB1에는 FORM을 만든다. 먼저 GRID를 잡고 CARD 내용을 넣는다. mdl-layout-spacer를 통해 가운데 정렬을 할 수 있다. 가운데 정렬 된 곳에서 FORM을 작성한다. 새롭게 css 파일을 만들어서 에 있었던 내용들을 모두 옮겨준다. Text를 입력할 수 있도록 Text관련 input="text"를 넣어주어야 한다. 사용자 아이디, 사용자 이름, 회사 이름, 전화번호, 등을 추가한다. GET STARTED라고 text를 만들어두었던 곳은 태그를 이용해서 submit으로 신청할 수 있도록 한다.. 2021. 10. 1.
영속성 컨텍스트로 발생하는 이슈 영속성 컨텍스트는 이슈는 JPA의 "동일성" 때문에 발생하는 문제이다. 왜냐하면 영속성 컨테스트에서 관리되는 객체들은 "==" true를 보장하기 때문이다. 따라서, 예상치 못한 문제가 발생할 수 있으니 영속성 컨텍스트를 주의해서 관리해야 한다. *주의* 1. 값을 조회해서 "수정"하는지, 새롭게 "생성"하는지 주의해서 확인한다. 2. @Transactional이 선언된 메서드는 모든 메서드가 "끝나는 시점"에 영속성 컨텍스트가 DB에 반영된다. 3. JPA에서 "조회"를 하면 DB에서 쿼리를 조회해오기 전에 영속성 컨텍스트에서 먼저 조회한다. 4. JPA에서 "save()"는 DB에 저장하는 것이 아니라 영속성 컨텍스트에 넣는 것이다. 1. 임베디드 타입 entityManger.clear() 유무에 따.. 2021. 10. 1.
N + 1 문제 개요 N + 1이란, JPA를 사용하면서, 연관관계에 있는 엔티티들을 조회할 때, 조인과 관련하여 쿼리 실행 횟수가 불필요하게 늘어나는 경우를 말합니다. N + 1 문제를 위해서, 엔티티의 연관관계 설정에 따라서 발생하는 결과를 알아봅니다. 연관관계 조회 타입 엔티티 연관관계에서 기본 설정 값은 아래와 같습니다. @OneToOne, @ManyToOne : EAGER (연관 엔티티가 1개만 있기 때문에 하나정도는 같이 조회하는 의미로 EAGER로 만들지 않았나 생각합니다.) @ManyToMany, @OneToMany : LAZY (연관 엔티티가 여러개인 리스트라 쿼리 양이 많으므로, 최대한 해당 엔티티 리스트를 사용할 때 쿼리를 날리라는 의미에서 LAZY라고 생각합니다. ) 아래 Review 엔티티가 US.. 2021. 9. 30.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 25일차 [서버리스 프로젝트 소개 및 준비] [AWS 소개] Amazon의 역사를 알아야한다. 작은 쇼핑몰에서 시작했다. 그떄는 리테일사업으로 시작했다. 물류 네트워크를 시작하면서 판매자 지원사업을 하다가 클라우딩 컴퓨터 서비스를 제공했다. 전세계 22개의 리전을 제공하고 추가적으로 리전을 추가해 인프라 맵을 확장시킬 예정이다. Region은 전세계의 각 대륙의 지역이다. 대륙간에 글로벌 통신을 한다. Availability Zones는 가용역역이 대역폭을 가지고 있으며 서로 대기시간이 짧도록 한다. 가용영역이 2개 이상인데, 혹여나 하나가 천재지변과 알수없는 이유로 데이터 장애가 나면 오류가 나기때문에 방지용이다. Edge는 전세계 사람들에게 안전하고 빠른 속도를 제공하고자 가지고 있는 지역들이다. 홈페이지에서.. 2021. 9. 30.
Converter 사용하기 쿼리를 통해서 가져온 결과를 엔티티 객체로 만들 때 일부 칼럼을 변환하는 방법을 알아본다. db데이터와 객체가 형식이 다른 경우 어떻게 매핑하는지 살펴본다. @Converter로 쿼리의 형식을 바꿔줄 수 있다. 다른 시스템을 연동하거나, 레거시 데이터는 원하지 않는 형태로 데이터를 저장해야 하거나 저장된 경우가 있다. 여기서는 int값으로 상태를 표현하고 있는 과거의 보편화된 개발 방식에 대해 커스터마이징하도록 한다. int형 코드를 의미가 있는 객체로 변환하여 어플리케이션에서 사용하는 것은 ORM 규칙에 살짝 어긋나있다. public class Book { .. @Convert(converter = BookStatusConverter.class) private BookStatus status; //판매.. 2021. 9. 30.
@Embedded, @Embedabble @Embeddable @Data @AllArgsConstructor @NoArgsConstructor public class Address { private String city; //시 private String district; //구 private String detail; //상세주소 private String zipCode; //우편번호 } public class User { ... @Embedded private Address address; .... } Address를 @Embedded로 정의하고, @Embeddable로 사용한 경우, 칼럼에는 Address가 들어가는 것이 아니라, 해당 클래스가 가지고 있는변수들로 테이블 칼럼을 구성한다. @Embedded @AttributeOverride.. 2021. 9. 30.
Native Query Native Query는 JPA와 무관하게, 실제 DB 쿼리문을 작성할 때 사용된다. @Query 맨 뒤에 nativeQuery=true라고 설정만 해주면 된다. 또한 엔티티를 조회하던 JPQL 문법과 달리 DB에서 사용하는 테이블 기준 쿼리를 작성하면 된다. @Query(value = "select * from book" , nativeQuery = true) List findAllCustom(); @Test void nativeQeuryTest() { booKRepository.findAll().forEach(System.out::println); bookRepository.findAllCustom().forEach(System.out::println); } @Query 메서드는 @Where을 감지해.. 2021. 9. 30.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 24일차 [DevOps 강의를 마치며] 툴체인으로 JIRA, CONFLUENCE, BITBUCKET, JENKINS가 있다 업무환경 클라우드는 EC2, S3, RDS, DOCKER가 있다. 개발자는 개발에 집중하고 서버 빌드와 배포 및 재기동을 하는 devOps가 있다. 여러 기능을 사용하면 자동화도 가능하고 간편하게 서비스를 구성할 수 있다. 중간중간 모니터링과 트러블 슈팅은 개발하면서 부딪힐 수 있다. [PART 2.AWS 서버리스 프로젝트 서버리스] *서버리스란? 서버리스는 말 그대로 서버가 없다는 뜻이다. 무리적으로 보이지 않는 곳에 있으며, 개발자와 사람이 관리한다기보다 클라우드에서 자체적으로 운영한다고 보면 된다. 홈페이지, 프로모션 쇼핑몰는 서버를 각 회사에서 두고 관리하지만 큰 부담이다. 사용자가 .. 2021. 9. 29.
TIL_210928 1. Facts(사실, 객관) - @Query 강의 듣기 및 정리 2. Feelings(느낌, 주관) - JPA에서 columnDefinition에 대해 알아보았습니다. 요즘 여러 문법을 공부하면서, 항상 이것이 운영에 사용되 수 있을지 없을지를 고민하게됩니다. 왜냐하면, 편리하게 사용하고자 많은 기능들이 있지만 생각보다 보안에 취약하거나 유효성 검사에 약한 기능들이 있기 때문입니다. columnDefinition도 마찬가지입니다. 유효성 검사를 하지 못해 발생하는 문제가 시스템에 영향을 끼칠 수 있으므로 기능이 있다는 것만 유의했습니다. 3. Findings (배운 점) columnDefinition으로 column이 생성될 때, default 값을 넣어줄 수 있다. 하지만, 보통 JPA를 사용할 때,.. 2021. 9. 28.
반응형