목록Bank-End (53)
관심쟁이 영호
이전 시간에는 웹사이트에서 요청했을때, 어떤방식으로 인식하고 넘어가는지 살펴보았다. 그럼 이번시간에는 회원가입을 했을때, 데이터가 어떻게 넘어가고 어떻게 내부에서 움직이는지 살펴보자. Spring이 시작이 되면, 테이블을 생성한다. 어디에서 테이블을 생성하라는 코드가 있을까? 이것을 알기 위해서는 먼저 JPA에 대한 지식이 있어야 한다. JPA에 대한 지식은 다른 글에 있다. https://bestkingit.tistory.com/106 Spring Boot ㅣ JPA, ORM에 관해서 ORM? ORM은 Object Relational Mapping이다. 데이터베이스에 저장된 테이블 형식의 데이터를 모델링하여 자바에서 사용할 수 있도록 클래스로 바꿔주는 것이다!! 거꾸로도 가능하다! ]ORM를 알아보기 ..
이제부터는 모든 코드를 하나하나 뜯어보고, 어떤일이 일어나있는 지, 왜 그렇게 되는지 완벽하게 분해분석을 할 예정이다. 1. H2 서버를 시작해주고, 프로젝트를 실행해준다. - 해당 내용에 대한 설정은, application.yml에 표시되어 있다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver - 여기서 url로 설정되어 있다. 2. url : localhost:8080으로 접속해준다. 그럼 홈화면이 뜬다. - 왜 localhost:8080인가? 이 이유는 yml에 설정이 되어 있기 때문이다. yml에 server.port에 대한 설정이 없으면 ..
오늘은 Ajax에 대해서 공부를 할 예정이다. Ajax란? Ajax(Asynchronous JavaScript and XML, 에이잭스)는 비동기적인 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다. 표현 정보를 위한 HTML (또는 XHTML) 과 CSS 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM, 자바스크립트 웹 서버와 비동기적으로 데이터를 교환하고 조작하기 위한 XML, XSLT, XMLHttpRequest (Ajax 애플리케이션은 XML/XSLT 대신 미리 정의된 HTML이나 일반 텍스트, JSON, JSON-RPC를 이용할 수 있다) DHTML이나 LAMP와 같이 Ajax는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을..
오늘은 Dummy Data를 넣어서 테스트를 해볼 예정이다. "com.cos.blog.test" pakage를 새로 만든다. 그리고 DummyControllerTest 클래스를 새로 만들어주자. 그리고 다음 코드를 살펴보자. // UserRepository.class //@Repository 생략가능 public interface UserRepository extends JpaRepository{ //User를 다루는 것, Primary key는 integer야 } JpaRepository을 상속받는다. 이렇게 상속받게되면, 필요한 메서드들을 상속받을 수 있다. 예를 들어, findOne, findAll 등등 User 테이블에 접근하여 가지고오는 모든 행위를 상속받을 수 있다. 이제 DummyContro..
스프링 공부를 해본 적이 있다면, 누구나 연관관계에 대해서 고민을 해본 적이 있을 것이다. 오늘은 그 연관관계가 어떤 것인지 살펴볼 예정이다. 아래의 그림을 보자. 어떠한 게시판의 게시글의 예시이다. 작성자: 홍길동은 User Table에서 데이터를 가지고 있다. 내용은 Board Table에서 데이터를 가지고 있다. 댓글은 Reply Table에서 데이터를 가지고 있다. 우리가 JPA를 사용하지 않을 때는, DB에서 JOIN을 이용하여 조회를 한다음 해당하는 데이터를 게시판에 뿌려주는 방식을 사용했을 것이다. 여기서 훨씬 편리하게 JPA기술을 사용할 수가 있다. JPA를 사용하면 우리가 Board에만 조회쿼리를 날려도 다 나온다. 흐름을 보면 SELECT * FROM Board Where Id = 1;..
이번엔 Board Table을 생성해보자. 먼저 코드를 살펴보면 // Board.java @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") private int count; //조회수 //글쓴이를 작성하기 위해서는 id값을 통해서 Select를 한번더 해..