Stay Hungry Stay Foolish

PROJECT 11

프로젝트 환경설정

1. Spring Initializr 를 통해 프로젝트 설정아래와 같이 프로젝트를 미리 설정하고 Generate를 클릭해 파일을 다운받아 인텔리제이에서 불러온다.  2. 파일 열기 맨 처음 파일을 불러올 때 build.gradle을 클릭해서 불러온다. 파일을 처음 열면 로딩이 길다. 라이브러리를 모두 다운받아야 하기 때문에 시간이 오래 걸린다.  3. build.gradle build.gradle 파일에서 내가 원하는 대로 파일이 설정돼 있는지 확인한다. plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6'}group = 'jpabook'versi..

웹 애플리케이션 개발 시작

start : 2024-12-02 진행 순서1. 프로젝트 환경설정2. 도메인 모델과 테이블 설계3. 애플리케이션 기능 구현 목차1. 프로젝트 환경설정Spring BootJPAGradleThymeleaftHIBERNATETomcat2. 요구사항 분석회원 기능, 상품 기능, 주문 기능의 요구사항을 분석3. 도메인과 테이블 설계분석한 요구사항을 토대로 도메인 모델을 설계 엔티티 설계테이블 설계엔티티와 테이블을 ORM으로 매핑4. 아키텍처 구성애플리케이션 아키텍처를 간단하게 구성 5. 핵심 비즈니스 로직 개발(회원, 상품, 주문)회원, 상품, 주문 도메인 개발핵심 비즈니스 로직 개발6. 테스트테스트 케이스 검증도메인 주도 설계 이해7. 웹 계층 개발앱 기반 위에 웹 계층을 올림 뷰 컨트롤러와 뷰 템플릿을 올려서..

[스프링 부트] 9. 게시판 만들기 페이징 처리

페이징이란? 운영체제 관점에서, 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다. 예를 들어, 100개의 게시물이 있으면 한 페이지에 100개를 모두 보여주는 것이 아닌 10개씩 나눠서 보여주는 것을 페이징 처리라고 한다. 01. 페이징 처리 JPA에서 제공하는 Pageable 인터페이스를 사용해서 페이징 처리를 한다. 01-1. BoardController의 boardList 메소드 수정 메소드 인자에 Pageable 인터페이스를 추가한다. Pageable 인터페이스가 많은데 그 중에 org.springframework.data.domain 인터페이스를 import 해준다. • Pageable 요청한 페이지를 반환한다. JPA에서 제공해주는 ..

[스프링 부트] 8. 게시판 만들기 메시지 창 띄우기

01. 게시글 작성을 완료할 때(버튼을 누를 때), 메시지 창을 출력 01-1. 메시지 파일 생성(message.html) board > src > main > resource > templates 에 메시지 페이지를 만든다. • 컨트롤러에서 메시지를 message 변수에 전송해준다. • alert는 메시지를 출력(창을 띄워주는) 함수이다. alert에 메시지를 담아 띄워준다. • location.replace는 페이지를 이동시키는 함수이다. 따라서 이동시킬 경로를 담아준다. 01-2. BoardController에서 boardWriteDo 메소드 수정(Model 객체 추가) Model 객체를 추가하고 위와 같이 작성한다. 로직 : model에 담겨서 message.html로 넘어오게 된다. 실행하기(h..

[스프링 부트] 7. 게시판 만들기 수정 처리

01. 수정 버튼 생성 앞 장에서 했던 삭제 처리와 비슷하게 버튼을 클릭하여 수정할 수 있도록 만든다. 01-1. boardview.html에서 버튼을 추가 view 파일에 수정 버튼을 추가하고, thymeleaf를 통해서 선택한 게시물이 수정 페이지로 넘어가게 한다. button일 때 수정하기 a 태그일 때 수정하기 01-2. 수정 페이지 생성(boardmodify.html) 작성 board > src > main > resource > templates 에 수정페이지를 만든다. (boardwrite와 같아서 코드를 복사/붙여넣기 함) 01-3. BoardController에서 url Mapping • path variable url을 이용해 파라미터 처리를 할 수 있다. Rest API 호출 시 주로..

[스프링 부트] 6. 게시판 만들기 삭제 처리

01. 삭제 버튼 생성 삭제 버튼을 생성하고, 버튼을 클릭하면 삭제 처리를 한다. html 파일에 버튼을 추가 처리 service controller에 url 매핑 thymeleaf로 처리 01-1. boardview.html에 삭제 버튼 추가 제목입니다. 내용이 들어갈 부분입니다. 글삭제 버튼으로도 가능( 태그 대신에 아래 코드를 넣어주면 된다.) 삭제하기 실행하기(http://localhost:8080/board/view?id=1) 01-2. BoardService에 메소드 추가 (처리 Service) • deleteById Entity의 id를 넘겨 삭제 처리를 한다. Spring Data CrudRepository interface의 구현체인 SimpleJpaRepository에 정의되어있다. (..

[스프링 부트] 5. 게시판 만들기 게시물 리스팅

01. 테스트 프로시저 테스트 데이터를 만드는 것과 같다. 게시글 리스트를 보려면 어느 정도의 글이 있어야 하는데 데이터가 없으면 개발하는데 불편하다. 즉, 직관적으로 보고 개발하기 위한 것이다. 실행 결과 120개까지 생성되게 했는데 테이블의 결과를 보면 120개의 데이터 생성된 것을 볼 수 있다. 02. 리스트 페이지 생성 board > main > resource > templates에 게시물 리스트를 만들어줄 html 파일을 생성한다. (boardlist) 글번호 제목 1 제목입니다. html 코드는 중요한 게 아니므로 디자인은 신경쓰지 않는다. 02-1. BoardController에 메소드 추가 BoardController에 List메소드를 추가한다. 앞에서 만들었던 html 파일의 이름과 동..

[스프링 부트] 4. 게시판 만들기 게시글 작성폼 생성과 처리

01. HTML 파일 생성 board > src > main > resources > templates에 HTML 파일을 생성한다. 그리고 아래와 같이 작성해준다. 태그 해석 • - 타이틀 명은 '게시물 작성 폼'이라고 한다. • - 분할하다는 뜻의 Division의 준말로, HTML문서 내에서 한 개의 가로 공간(Block)을 만드는 태그이다. id, class 속성 모든 태그에는 id 속성과 class 속성을 지정해 줄 수 있는데, 이를 이용하면 CSS나 JavaScript에서 태그를 좀더 쉽게 다룰 수 있다. id는 원칙상 하나의 id당 하나의 태그에만 적용 할 수 있으며, class는 하나의 class를 여러 태그에 적용 할 수 있다. • - 사용자가 여러 줄의 텍스트를 입력할 수 있는 텍스트 입..

[스프링 부트] 3. 게시판 만들기 테이블 생성

01. MySQL Workbench 접속 Board 스키마에서 Tables을 오른쪽 마우스로 클릭하면 Create Table라는 게 있다. Create Table을 클릭하면 테이블을 생성할 수 있다. 02. 테이블 생성 테이블 명과 컬럼 명을 위와 같이 설정한다. id - 인덱스를 표현하고, datatype은 역시 int로 설정한다. id를 기본키로 지정하고 NOT NULL을 해준다. AI는 Auto Increment라는 것인데, AUTO INCREMENT를 사용하면 레코드의 값이 중복되지 않고 1씩 자동 증가하게 된다. title - 제목을 표현하고, datatype은 VARCHAR(45)로 설정한다. 최대 45자의 가변길이를 사용할 수 있다. content - 내용을 표현하고, datatype은 TE..

[스프링 부트] 2. 게시판 만들기 프로젝트 생성

01. 프로젝트 생성 → 링크를 클릭하면 spring initializr로 이동한다. https://start.spring.io 인텔리제이에서도 프로젝트를 생성할 수 있지만, 그보다 더 편하게 웹에서 생성할 수 있는 spring initializr라는 것을 통해서 프로젝트를 새로 생성한다. 아래와 같이 설정을 해준다. • 관리 툴 : Gradle - Groovy (Gradle : 빌드 도구) • 언어 : Java • 스프링 부트 버전 : 3.1.0 (최신버전) (SNAPSHOT은 개발하고 있는 버전이기 때문에 선택X) • 프로젝트 이름 : Traveling.Webproject • 자바 버전 : 17 (스프링 부트 버전 3.0.X 이상을 사용하고자 한다면 자바 17을 선택해야 한다.) • Dependenc..

[스프링 부트] 게시판 만들기 개발 환경 세팅

게시판 만들기 참고 영상 - https://www.youtube.com/watch?v=frI5CoZe-vE&list=PLZzruF3-_clsWF2aULPsUPomgolJ-idGJ&index=1 01. IntelliJ(인텔리제이) 다운로드 최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요 www.jetbrains.com 위의 링크를 클릭하면 다운로드 페이지로 이동합니다. 다운로드 페이지에 가면 Ultimate 버전(유료)과 Community Edition 버전(무료)이 있다. Community 버전으로 설치한다. 옵션 선택 설치 되었으면 실행해주고 옵션에서 아래와 같이 선택한다. 그리고 계속 Next를 눌러주면 설치가 완료된다. 02. MariaDB 다운로드 Download..