본문 바로가기
반응형

책벌레와 벌레 그 사이 어딘가83

[개념쌓기] - JPA : @Query 인스타그램 클론코딩을 하기로 팀원들하고 정했다.기간도 짧고 구현해보고 싶은 것도 많다보니 역할을 나눠서 하기로 했다. 좋아요를 눌러서 카운트 하는 기능을 담당하게 되었는데, 좋아요를 게시물마다 유저가 한번만 누를 수 있게 하고, 해당 유저가 해당 게시물에 다시 한번 좋아요를 누르게될 경우 좋아요를 취소하는 방식을 고민하다가 @Query를 접하게 되어서 이번 기회에 확실하게 공부하기로 했다. uplikeCount를 호출시 Articles를 a로 부르기로 했으니, a에 있는 likeCount에 a.likeCount+1의 값을 대입해주는 것이고 뒤에 where절은 어디서? a.articlesId에 id라는 변수를 넣어주는 것이다. = :id에서 ':'가 변수를 받아 쿼리를 작성시 사용 이 코드는 Reposit.. 2022. 8. 22.
[개념쌓기] CORS-크로스 도메인_프로토콜 문제 CORS : Cross-origin resource sharing 웹 브라우저들은 보안상의 이유로 javascript나 ajax로 외부 host로 접속하는 것을 막기 시작했다. 그래서 javascript를 Same Origin Policy(동일 출처 정책)라는 정책을 두어 다른 도메인의 서버에 요청하는 것을 보안문제로 간주하고 이를 차단한다. javascript는 자신이 속한 동일 도메인 내에서만 서버 요청을 허용하고 처리해 주겠다는 의미이다 네 가지의 크로스 도메인 문제 1. 도메인은 같으나 서브도메인이 다르면 문제가 발생한다. www.xyz.com과 aaa.xyx.com 사이의 문제를 말한다. 2. 도메인이 다르면 문제가 발생한다. www.xyz.com과 www.abc.com 사이의 문제를 말한다. .. 2022. 8. 19.
[개념쌓기]CASCADE?OrphanRemoval? 중심을 만들어내는 것은 시선을 소유한 자가 디디고 선 자리이다 게시판을 만들다보니 댓글도 만들게 되었다. 삭제를 하려는데 게시판에 물려있는 댓글 때문인지 삭제를 누르면 기능이 동작하지 않았다. 구글링을 통해 이것이 CASCADE옵션의 부재임을 알게되어 한번더 정리하게 되었다 그래서뭐냐고? => 영속성에서 참조된 객체를 지워주지 않았기 때문 그리고 궁금하게 되었던 고아 객체 처리 orphanRemoval에 대해서도 알아보자 CASCADE? - 부모 엔티티에서 자식 엔티티로 상태를 전이하는 것 ex. 부모 엔티티 저장할 때 자식 엔티티도 함께 저장, 부모 엔티티인 게시글 삭제시 자식 엔티티인 댓글도 같이 삭제 - Parent와 Child가 라이프사이클이 동일할 때,Child를 소유하는 Parent가 하나일 .. 2022. 8. 18.
[개념쌓기] CORS CORS가 무엇일까 우선 CORS가 왜 필요한지를 알아야 한다 웹 공간에서는 다른 출처로의 리소스 요청에 대한 제한과 관련된 두가지 정책 CORS,SOP(Same-Origin Policy)이 존재하는데 서로 다른 출처를 가진 리소스를 안전하게 사용하기 위함이다. 우선 SOP를 알아보자. SOP(Same Origin Policy) SOP(동일 출처 정책)는 다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식이다. 여기서 말하는 출처는 URL의 Protocol, Host, Port로 구분한다 http://github.com:80 위 주소를 예시로 들면 http:프로토콜 / github.com : 호스트 / 80 :포트로 본다 sop는 동일한 프로토콜,호스트,포트의 리소스만 허용한다.예시를 하나 들자면 1.. 2022. 8. 15.
[개념쌓기]JSON의 직렬화/역직렬화 역경은 인간을 낳고,행운은 괴물을 낳는다 @JsonIgnore와 관련된 것들에 대해 알아보다가 확실히 모르는 용어에 대해 우선 알아보기로 했다 JSON? ( JavaScript Object Notation) : 자바스크립트 객체를 문자열로 표현하는 데이터 포맷 자바 스크립트 객체 리터럴과 유사하지만 객체가 아닌 문자열뿐이며, 이를 통해 다른 도메인과 데이터를 주고 받을 수 있다 XML 이나 다른 데이터 포멧이 비해 간결하며,손쉽게 자바스크립트 객체로 변환할 수 있어서. 웹에서 Server - Client 간의 데이터 교환에 주로 JSON을 사용한다 JSON 표기법 JSON은 자바스크립트 객체와 유사하나 표기법이 다르다 표기법이 간결하나 문법에 예민하여,정확한 사용이 필요하다 { "name" : "Alic.. 2022. 8. 13.
[개념쌓기] @Transactional 야자반에서 @Transactional 에 관해 듣게 되다보니 모르는 내용도 많고, @Transactional이 작동하지 않는 경우도 알게되어 확실히 정리해두고자 블로그에 정리하게 되었다. @Transactional - transaction을 사용하면 begin,commit을 자동 수행해준다 - 예외를 발생시키면, rollback 처리를 자동 수행해준다 Spring에서의 @Transactional 기능제공 방식 JPA의 객체 변경감지는 transaction이 commit될 때,작동한다 그래서 Spring은 @Transactional 어노테이션을 선언한 메소드가 실행되기전, transaction begin코드를 삽입하여 메소드가 실행된 후,transaction commit 코드를 삽입하여, 객체 변경감지를 .. 2022. 8. 10.
[개념쌓기] 연관관계 매핑 엔티티( Entity )들은 대부분 서로 관계를 맺고 있다. 예를들어 Category 엔티티와 Book 엔티티가 있을 때, Category에는 많은 Book을 갖는 관계를 갖고 있습니다. 이렇게 엔티티들이 서로 어떤 연관관계를 맺는지 파악하는 것은 매우 매우 중요하다 연관관계 매핑? 객체의 참조와 테이블의 외래키를 매핑하는 것 Jpa에서는 상대 테이블의 PK를 멤버변수로 갖지 않고,엔티티 객체 자체를 통으로 참조한다 단방향?양방향? 단방향 관계 : 두 엔티티가 관계를 맺을 때, 한 쪽의 엔티티만 참조하고 있는 것 양방향 관계 : 두 엔티티가 관계를 맺을 때, 양 쪽이 서로 참조하고 있는 것 데이터 모델링에서는 관계를 맺기만 하면 자동으로 양방향 관계가 되어 서로 참조하나, 객체지향 모델링에서는 구현하고자.. 2022. 8. 10.
반응형