본문 바로가기

스프링부트

(10)
2-5 리포지터리 JPA를 사용하여 데이터를 처리하는 시간이다. 2-4에서는 데이터베이스를 활용하기 위해 클래스를 만드는 과정을 거쳤는데 그것도 시간이 꽤 걸렸던 것 같다. 이번 시간은 지난시간에 준비한 것들을 활용하는 시간이라서 길이가 굉장할 것으로 예상한다. 1. 리포지터리 2. 데이터 저장 3. 데이터 조회 4. 데이터 수정 5. 데이터 삭제 6. 답변 데이터 생성 후 저장 7. 답변 조회 8. 답변에 연결된 질문 찾기 vs 질문에 달린 답변 찾기 1. 리포지터리 엔티티(Entity)만으로는 데이터베이스에 데이터를 저장하거나 조회를 할 수 없다고 한다.(잉?? 아 그래서 H2~!?) JPA 리포지터리가 필요한 상황인데 우선 리포지터리는 에티티에 의해 생성된 테이블에 접근하는 메서드들을 사용하기 위한 인터페이스라고 한..
2-4 엔티티(Entity) 엔티티는 처음 알게 된 것은 프로젝트를 진행했을때 알게 되었는데 현재 정리된 것은 개인 github에 정리를 해두었다 나중에 스프링부트 과정이 끝나게 된다면 그때 한번 포스팅에 정리해서 올려볼 예정이다. 엔티티는 데이터베이스 테이블과 매핑되는 자바 클래스를 지칭한다. 엔티티의 속성 구상하기 답변 엔티티 만들기 테이블 확인하기 엔티티의 속성 구상하기 질문(Question) 엔티티에는 최소한 아래와 같은 속성이 필요하다. [표 1-1] 속성명 설명 id 질문의 고유 번호 subject 질문의 제목 content 질문의 내용 create_date 질문을 작성한 일시 마찬가지로 답변(Answer)엔티티에는 최소한 아래와 같은 속성이 필요하다. [표 1-2] 속성명 설명 id 답변의 고유 번호 question 질..
2-3 JPA 내가 데이터베이스라고 한다면 오라클을 떠올릴 것이다. 그곳에서 데이터베이스를 공부했으니까 자바스프링부트를 시작하는 것도 중요하지만 데이터베이스를 활용하는 것도 굉장히 중요하다고 들었다. 아마 JPA는 중요한 내용이 될 것 같은데 물론 다른 포스팅도 중요하겠지만, 이곳에서는 이론을 공부한다 생각하고 이해해 보도록 하자.(나중에 포스팅 중에서는 데이터베이스를 위주로도 올려봐야겠다.) Java Persistence API 스프링부트는 이것을 사용하여 데이터베이스를 처리한다. JPA는 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스 모음이다. ORM SQL 쿼리와 ORM를 테이블 구성으로 비교해보자. NO subject content 1 안녕 가입인사 2 질문 ORM이..
2-2 컨트롤러 이전 포스팅에는 내가 수업을 들었을 당시, 왜 이 클래스는 저기에 넣고 저거는 저기에 넣는지 이해를 제대로 하지 못하고 넘어간 상황이었는데 외우기에는 당장은 어렵겠지만 확실히 이해를 하고 넘어가니 유익한 시간이었던 것 같다. 저런 부분을 몰랐다면 test에 다 집어넣고 왜 안되지? 이러고 있었을 테니깐 말이다. 이번 포스팅은 스프링부트 게시판을 만들어보는 시간이다. 취업하는데 있어서 이 기술력이 가장 기본이 된다고 하니까 따라 만들어가면서 무엇이 있는지 살펴보면 좋을 것 같다. URL 매핑 http://localhost:8080/sbb 를 입력했을때 "안녕하세요 Spring Boot Board에서 당신을 환영합니다" 라는 문자열을 출력하는 과정을 만들 것이다. 당연히 오류가 나올 수 밖에 없는 모습이다...
2-1 스프링부트 구조 알아보기 이 부분이 가장 나에게 필요한 부분이지 않을까 싶다. 따라하는 것이야 당연하겠지만, 나는 문과생이므로 솔직하게 왜 이 패키지에서만 적용을 하지? 이런 부분이 굉장히 의문스러운 점이 많았다. 물론 쓸데없는 것이고 그냥 만들줄만 안다면 된다고 생각하지만, 나의 경우는 왜? 라는 질문을 많이 던지는 스타일이기 때문이다. 강의의 내용들은 대부분 '이거니까 이거야'라는 느낌이 많았는데 오늘 공부한 부분에서는 의문점 해결이 되어가는 부분이라고 생각이 든다. src/main/java 디렉터리 com.mysite.sbb 패키지는 자바 파일을 작성하는 공간. 자바 파일로는 HelloController와 같은 스프링부트의 컨트롤러, 폼과 DTO, 데이터베이스 처리를 위한 엔티티, 서비스 파일이 있다. src/main/ja..
1-4 스프링부트도구2 1-3 에서 롬복 실행이 제대로 되지 않아서 새롭게 STS를 설치 후 1-3까지 처리를 하였다. 롬복이 제대로 실행되는지 확인할 순서다. 우선 HelloLombok 클래스를 작성하여 롬복 동작 여부를 확인해본다. 제대로 구동되고 있음을 확인했다면 아래의 코드를 입력한다. package com.mysite.sbb; import lombok.Getter; import lombok.Setter; @Getter @Setter public class HelloLombok { private String hello; private int lombok; public static void main(String[] args) { HelloLombok helloLombok = new HelloLombok(); helloLo..
1-3 스프링부트 도구 스프링개발을 하는데 있어서 도움을 주는 도구들을 설치하자. 이전시간에 이어 코드는 그대로 사용되고 있다. package com.study.springboot; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @GetMapping("/hello") @ResponseBody public String hello() { return "Hello SBB"; } } "Hello World..
1-2 스프링부트 처음 시작하기 jdk-18.0.2 설치 / eclipse_J2EE 사용 브라우저 주소창에 http://localhost:8080/hello 라는 URL 입력시 “Hello World” 문구가 출력되는 웹 프로그램 작성하기. 1. HelloController 컨트롤러 만들기 브라우저 처리를 위해서는 컨트롤러(Controller)가 필요한데, 이는 서버에 전달되어진 클라이언트의 요청을 처리해주는 Java Class다. HelloController.java 파일이 생성되는데, 현재는 아무것도 실행되지 않는 클래스가 생성된 것을 확인할 수 있다. package com.study.springboot; public class HelloController { } 제대로 된 컨트롤러의 기능을 활용하기 위해서는 아래의 코드를 입력해준..
1-1 스프링부트 시작하기 전 준비 jdk-18.0.2 설치 / eclipse_J2EE 사용 프로젝트만들기 사진의 순서대로 진행되어진다. (이미 작성된 폴더를 토대로 하는 것이기 때문에 혼동되지 않도록 주의하기) 1-3 프로젝트 설정1 Name : sbb로 설정한 이유는 따로 없다. spring boot board의 약자라고 생각하면 된다. 위의 A project with name 'sbb' already exists in the workspace라는 문구가 나타난 이유는 1-1 사진을 확인해 본다면 이미 프로젝트가 생성되어 있기 때문임을 확인할 수 있다. Type : 프로젝트 관리 도구다. Gradle 기반으로 설정되어 있는 것을 보고 따라한 것이기에 그대로 선택하였으며, Maven이라는 것도 있으나 Gradle이 나중에 개발된 것이기 ..
1-0 Spring Tool Suite4 설치하기 교재를 구매하지는 않았으며, 활용하는 위키독스가 있다. https://wikidocs.net/160022 0장 들어가기 전에 점프 투 스프링부트는 함께 만들어가는 온라인 책이다. 여러분의 피드백으로 점프 투 스프링부트는 성장해가고 있다. 책을 씀에 있어서 가장 두려운 것은 잘못된 정보의 전달이다… wikidocs.net 초보자인 나로서는 굉장히 접근하기 쉬웠던 내용을 적어주었고 한가지 아쉬웠던 것은 딱 한가지인데 윈도우를 기반으로 하는게 아닌 MAC을 기반으로 해서 아쉬웠다. 순서가 뒤바뀌기는 했지만, 번호 순으로 확인해보면 된다. 현재 롬복 설치 과정 중 이클립스에서 문제가 발생하게 되었으므로 Spring Tool Suite4를 활용할 것이다. https://spring.io/tools Spring T..