Cocoding

고정 헤더 영역

글 제목

메뉴 레이어

Cocoding

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (57)
    • Spring (33)
    • JSP (3)

검색 레이어

Cocoding

검색 영역

컨텐츠 검색

전체 글

  • 쿼리스트링과 주소변수 매핑의 차이점

    2022.06.21 by shika

  • JPA fk사용법 (@JoinColumn, @OneToMany(mappedBy="~"))

    2022.06.02 by shika

  • JPA 무한참조 방지

    2022.05.24 by shika

  • CSRF, XSS 란?

    2022.05.07 by shika

  • JPA OSIV(Open Session In View), Fetch의 EAGER전략과 LAZY전략, 스프링부트 yml파일 open-in-view:true

    2022.05.04 by shika

  • 스프링부트 기본파싱전략, json통신 (get,post,put,delete)

    2022.04.30 by shika

  • 더티체킹 (JPA 더티체킹이란)(스프링부트 @Transactional)

    2022.04.30 by shika

  • JPA 영속성 컨텍스트의 개념과 Flush란

    2022.04.30 by shika

쿼리스트링과 주소변수 매핑의 차이점

오늘은 어찌보면 너무 쉬운건데 너 막상 정확히 알아? 라고 하면 잘 모르겠는데 쿼리스트링과 주소변수 매핑의 차이점에 대해서 확실하게 집고 넘어가도록하자 @RestController public class QueryPathController { @GetMapping("/chicken") public String chickinQuery(String type) { return type+"배달갑니다.(쿼리스트링)"; } @GetMapping("/chicken/{type}") public String chickinPath(@PathVariable String type) { return type+"배달갑니다.(주소변수매핑)"; } } 자 우리는 주소를 치킨집이라고 생각하고 치킨을 시킨다고 생각해보자 치킨집에 전화해..

Spring 2022. 6. 21. 20:07

JPA fk사용법 (@JoinColumn, @OneToMany(mappedBy="~"))

오늘은 JPA에서의 fk에 대해서 알아보자 일단 fk값을 설정할떄는 fk에 해당하는 자바필드 위에 어노테이션으로 @ManyToOne 이나 @OneToMany를 붙혀준다 뒤에것을 기준으로 보면 편한데 @ManyToOne pirvate User user; 라고 되어있으면 어노테이션뒤에있는 One이 user에 해당한다는 것이다. 즉 user가 1개일때 이클래스에 해당하는것은 여러개 필요하다는 뜻이겠죠? @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //auto_increment private int id; @C..

카테고리 없음 2022. 6. 2. 21:08

JPA 무한참조 방지

오늘은 JPA 무한참조에 대해서 알아보자. 나는 Board와 Reply라는 객체를 JPA를 통해서 테이블로 만들었다. @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //auto_increment private int id; @Column(nullable = false, length = 100) private String title; @Lob //대용량 데이터 필요할때 쓴다 private String content; //섬머노트 라이브러리태그가 섞여서 디자인이 됨. //@ColumnDefault("0") /..

카테고리 없음 2022. 5. 24. 19:03

CSRF, XSS 란?

XSS공격이란? XSS 크로스 사이트 스크립팅 => 자바스크립트로 공격하기 예를 들면 alert를 5만번 사용하기 (단순한 공격) 오픈소스 "lucy" 같은 것을 사용하면 간단하게 막을 수 있다 CSRF 공격이란 예를 들어 관리자만 관리할 수 있는 부분이 있다고하자. 뭐 구매사이트의 구매 포인트를 올려주는 부분이라고 한다면 손님들은 이 사이트로 접속이 되지 않을 것이다. 그럴 때 관리자에게 어떠한 사진 같은것을 보내서 클릭을 하도록 유도하는것이다. 그것을 관리자가 클릭하면 관리자의 pc에서 사진을 누름과 동시에 관리자의 구매 포인트를 올려주는 것까지 같이 발동이 되서 어떠한 고객의 구매 포인트를 올릴 수 있게 하는것이다. (한마디 다른사람의 권한을 이용하는것) 이 공격은 get방식일 때 많이 일어나는데 ..

카테고리 없음 2022. 5. 7. 13:40

JPA OSIV(Open Session In View), Fetch의 EAGER전략과 LAZY전략, 스프링부트 yml파일 open-in-view:true

먼저 JPA의 Fetch 전략에 대해서 살펴보자면 EAGER전략과 LAZY 전략이 있다. EAGER은 즉시 로딩 LAZY는 지연 로딩이라고 보면 된다. 이게 그럼 무엇이냐? DB에 야구선수가 있고 야구선수 테이블은 fk로 해당 선수의팀 테이블을 가지고 있다고 생각해보자 JPA를 사용시에 간단히 EAGER 전략은 사용자가 선수객체에 대한 정보를 요청했을때(선수를 불러오려고 DB에서 쿼리날릴때) 바로 팀 객체 정보까지 불러오는 것이다 편하지만 많은 정보를 불러오므로 속도가 느릴 수 있다. LAZY 전략은 사용자가 선수정보를 요청했을 때(팀 객체는 비어있는 가짜객체를 생성해놓고) 진짜 팀 객체가 필요할때만 팀 객체를 불러오는 것이다. 이건 빠르지만 무조건 딸려온 정보를 다 불러와야 될때는 위에것보다는 안 좋을..

카테고리 없음 2022. 5. 4. 20:04

스프링부트 기본파싱전략, json통신 (get,post,put,delete)

1. get요청 -> url로 요청하는 모든 요청을 가르킨다 ( http://localhost : 어쩌구 ? 어쩌구:xx ) 등등등 특징은 body로 데이터를 담아 보내지 않는다. 2. post, put, delete요청 이건 다들 데이터의 변경이 필요할 때 사용한다. 그리고 각각 데이터를 보낼 때 데이터를 담아보내야 할 것이 많을 때도 당연히 존재할 것이다. 뭐 변경을하는데 username, email, address, gender, date 등등 이때 post방식은 form 태그(key, value)의 post 전략을 사용하고는 한다 (중요한 점은 form태그는 get과 post요청 밖에 처리 할 수 없다) 그러므로 put요청과 delete요청은 다른 요청을 해야하는데 자바스크립트 요청을 사용하고는 ..

카테고리 없음 2022. 4. 30. 17:10

더티체킹 (JPA 더티체킹이란)(스프링부트 @Transactional)

자바 코드를 변경시키면 영속성 컨텍스트에 정보가 (트랜잭션이 종료될때) 변경감지를 통해 그 변경을 감지하고 실제 DB에 수정을 날려주는 것을 의미한다 이것을 "더티 체킹"이라고 한다 그래서 springboot jpa 등에서 DB update가 필요할 때에는 .save()보다는 이러한 더티체킹을 통해서 update를 진행을 할 것이다. 좀더 쉽게 코드로 살펴보자면 // save함수는 id를 전달하지 않으면 insert를 해주고 // save함수는 id를 전달하면 해당 id에 대한 데이터가 있으면 update를 해주고 // save함수는 id를 전달하면 해당 id에 대한 데이터가 없으면 insert를 한다. (update시에는 save메소드를 많이 안쓴다) // email, password바꾸기 @Trans..

카테고리 없음 2022. 4. 30. 16:04

JPA 영속성 컨텍스트의 개념과 Flush란

영속성 컨텍스트란 "엔티티를 영구 저장하는 환경" 이라는 뜻이다. 엔티티란 객체, 개체 (DB에서는 데이터의 집합을 의미한다) 레코드와 똑같은 뜻인데 데이터베이스에서 가로 한줄을 가르킨다고 한다 자바 코드와 실제 DB의 중간다리 역할을 해줘서 (애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할) 데이터를 불러오거나 새롭게 저장할때 걸리는 속도를 조금이나마 빠르게 해주는 기능이 있다. 이제 영속성 컨텍스트에는 '1차 캐시' 라는 개념이 있는데 find()메소드 등을 이용해서 DB정보를 불러오면 그것을 1차 캐시에 저장하고 1차 캐시에서 자바에게 정보를 제공해준다고한다 (이때부터가 DB까지 거치지않아도 되므로 정보를 불러오고할때 시간이단축된다) 1차 캐시에 정보가 없으면 DB..

카테고리 없음 2022. 4. 30. 15:32

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 8
다음
TISTORY
Cocoding © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바