강의로 듣고있는 게시판 구현의 수정, 삭제 기능을 공부했습니다. DB로의 값변경이 있을때에는 앞단에서 필터링을 거른다 하여도 해킹의 위험이 있어서 서버단에서도 무조건 검증을 해야합니다. 그렇다고 서버단에서만 하면은 앞단에서 실수로 잘못된 값을 넣었을경우의 서버단에서의 검증으로의 리소스낭비를 줄이기 위해 둘다 꼭 해줘야 합니다. 삭제기능은 이번에 처음으로 method = delete를 사용했는데 restful api방식으로 프로그래밍할때 사용하는 기능이라고 합니다. 이러한 방식이 프로그래밍 내부가 조금더 명확해지고 깔끔해지지 않을까 생각이 듭니다. 오늘 일정을 다할수있었는데 jpa부분에서 갈팡질팡해서 좀 늦었습니다. 영속성 부분, 트랜잭션 범위, 연관관계에 있어서 데이터 수정권한 등 오늘 구현 하면서 다시..
jpa로 db에 데이터를 구해야하는데 테이블의 연관관계가 A(1)- B(N) 이라고 가정합니다. URL ~/index.html를 요청을 보내는데 필요한 내용들이 A입니다. 하지만 LAZY설정을 안해주면 사용하지도 않을 값들을 들고올수가 있습니다. @OneToMany(type = LAZY) 어노테이션을 사용하면 처음 가지올때는 LAZY속성이 붙은 필드는 PK값만 들고옵니다.(아마도?) N+1은 B(N)의 값을 들고오는데 테이블에 값이 10개 있으면 그 수만큼 계속 SELECT를 해서 들고오는겁니다. 하지만 EAGER를 사용하면 처음 A객체를 들고올때 한번에 모두 들고 와서 후에 불필요한 조회가 줄어들게 됩니다.
1강 반정도 나갔습니다. N+1의 문제에 대한 해결책을 찾고있는데 잘 안됩니다. @NamedEntityGraph를 도메인클래스 위에 작성하고 NODE에 LAZY 혹은 EAGER를 설정해서 해당 엔티티 그래프가 적용된 메서드를 호출하면 위 어노테이션에 작성된 속성값만 EGAR로 가져오고 나머지는 LAZY로 가져오는줄 알았는데 아닙니다 ㅠㅠ; 필요한 데이터건이 3건정도면 콘솔에 쿼리문에서 SELECT가 몇십건을 가져옵니다. 내일 수정하겠습니다. 그외 BOOTSTRAP을 이용해서 카드형식의 레이아웃에 리스트를 올리거나 THYMELEAF IF FOR문 등을 사용해서 일반웹사이트의 게시판을 구현했습니다.
@Inherited : 어노테이션이 자손클래스에도 상속되도록 함 @Documented : javadoc 문서 생성시 현재 어노테이션 설명추가 @Target : 어노테이션이 적용할 위치를 정함 @Retention : 어느시점까지 영향을 미치는지 정함 @ExtendWith : 단위 테스트간 공통으로 사용하는 기능 @Documented, @Retention, @Target은 같이 붙어다닙니다. 같이 사용하면 어느곳에 붙어서 어디까지 영향이 미치는지 정하며, 문서생성시 설명을 추가시키겠다 정도로 추측이 됩니다.
springboot를 해야하는데 다른환경에서 git clone을 하니 에러가 뿜뿜 터져서 이거하다가 시간 다 버릴것같아서 오늘은 디자인패턴을 한다...ㅜ 공부를 하다보면 iterator가 자주 보이는것 같아서 가장먼저 시작하기로 한다. 객체안의 배열에 대하여 접근을 위한 패턴인것같다. 추측으로는 팀작업시 다른개발자들이 만든 컬렉션?(배열) 혹은 다른개발자가 만든 라이브러리내에 배열을 손쉽게 사용하기위해 존재하는 패턴인것 같다. 여러 개발자들의 배열에 대하여 공통되게 iterator를 상속받아 통일된 함수를 사용하여 접근하라는 의도가 아닐까 생각이 든다.
mapped By = 연관 관계의 주인 설정 DB 방향성 X 객체 방향성 O 관계를 구현하면서 주인 관계에 대하여 의문이 생겼습니다. 누가 연관 관계의 주인이 되어야 하나? 위 어노테이션에 'mapped By'속성을 사용하면 주인이 아니라고 알려주는 것입니다. 관계형 DB의 두 테이블 간의 관계에서 'FK'는 어차피 다 대일, 다대다 어떤 것이든 다의 테이블에 있어야 하는 것으로 알고 있습니다. (일의 테이블에 'FK'를 넣어서 일대다 관계를 설명할 수 있나?) 다의 엔티티에 mapped By 속성을 사용하라고 나옵니다. mapped By의 속성 여부는 엔티티에서 관계되는 엔티티를 참조할 수 있나 없나? 를 결정하지 않나 싶습니다. 다른 포스팅을 보니 연관 관계의 주인만이 DB 내의 둘의 관계에 영향을 ..
- Total
- Today
- Yesterday
- 백준 제로
- 백준 제로 자바
- JDK8
- ㅃ
- boot
- springboot
- 개발자채용
- jre11
- 백엔드
- JPA
- 문제
- 코딩테스트
- 관계설정
- 프로그래머
- 자바
- Spring
- jre8
- 알고리즘
- jre
- jvm
- jdk11
- 자사서비스
- java8
- 다대일
- 스타트업
- 스택
- JDK
- 백준
- boot 일대다
- mappedby
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |