728x90
반응형

멀티-티어 아키텍처

 

여러 개의 계층으로 나누어서 시스템을 구성하는 방법으로 가장 흔하게 사용하는 것은 3티어 아키텍처이다.

 

 

3티어 아키텍처

 

Presentation - Business - Data Source 세 부분으로 구성된다.

 

 

Presentation : 사용자와 소통하는 부분  (Front-End)

 

Business : 사용자가 요청한 것을 처리하는 부분 (Back-End)

 

Data Source : 처리한 결과가 보존되는 곳 (DataBase)

 

 

이 중에서 Business 부분에는 Layered Architecture 라는 것이 존재한다.

 

Layered Architecture : 4개의 레이어로 시스템을 만드는 것으로 UI, Application, Domain, Infrastructure로 나뉜다.* 각 레이어는 아래 단계의 레이어에 의존되어 사용되지만 윗 단계의 레이어를 사용하지 않는다. 이렇게 사용하는 이유는 프로젝트의 복잡도를 낮출 수 있다.

 

 

TDD(Test Driven Development)

 

테스트 주도 개발 혹은 목표 주도 개발을 의미한다. 테스트는 개발에서의 목표를 실험해보게 되고 사용자 입장에서 실행하게 되므로 사용자 주도 개발이라고도 한다.

 

TDD를 사용하는 이유는 목표를 달성하기 위함이고 좀 더 보기 좋은 코드를 만드는 데에 목표가 있다.

 

1) 올바르게 작동하는 코드 구현

 

2) 깔끔하게 작동하도록 리팩토링 -> 작동은 그대로 두고 코드만 변경

'ETC > IT' 카테고리의 다른 글

REST API  (0) 2021.08.10
로딩을 하는 이유는?  (0) 2021.04.19
컴퓨터의 데이터 단위(Bit, Byte, KB, MB, GB, TB)  (0) 2021.04.19
728x90
반응형

 

스프링부트 게시판 무작정 따라하기!

 

이 강의는 자바를 이용한 웹 개발 기초 지식, 프레임워크에 관한 지식이 없으신 분도 따라하기만 하면 게시판을 만들 수 있게 구성하였습니다. 물론 완벽하게 이해하시기는 힘드시겠지만 강의 통해 웹 개발에 흥미를 가지셨으면 좋겠습니다.

 

스프링 부트와 JPA, Thymeleaf를 이용한 게시판 개발

 

본 개발에서 프레임워크는 스프링 부트(Spring Boot)를 사용할 것이고, DB 접근 기술로는 Mybatis 가 아닌 JPA(Java Persistence API)를 사용할 것이며, View를 담당하는 View 템플릿은 타임리프(Thymeleaf)를 사용할 것입니다. 스프링 부트를 통해 MVC 구조를 파악할 수 있고, JPA를 통해 Mybatis와는 다른 DB 접근 방법을 익힐 수 있으며, 타임리프를 통해 사용자에게 데이터를 어떻게 보여줄 수 있는가 학습해 봅시다.

 

이 부분도 너무 어렵게 받아들이지 마시고 이런 것들이 쓰였구나 정도로 이해해주시면 됩니다.

 

개발환경

 

IDE(통합개발환경) : 인텔리제이 커뮤니티

 

개발 언어 : Java 1.8.0

 

프레임워크 : Spring Boot 2.5.3

 

빌드 : Gradle

 

DB(데이터베이스) : MariaDB 10.3.30

 

DB 접근 기술 : JPA

 

View 템플릿 : Thymeleaf

 

 

강의 영상

1) 강의 소개

 

 

2) 인텔리제이 설치

 

 

3) MariaDB 설치

 

 

4) MySQL Workbench 설치

 

 

5) 프로젝트 생성

 

 

6) DB에 테이블 생성

 

 

7) 게시글 작성폼 생성

 

 

8) 글 작성 처리

 

 

9) 게시글 리스트

 

 

10) 게시글 상세페이지

 

 

11) 게시글 삭제

 

 

12) 게시글 수정

 

 

13) 메시지 띄우기

 

 

14) 파일 업로드

 

 

강의자료

application.properties 설정

spring.datasource.driverClassName=org.mariadb.jdbc.Driver

spring.datasource.url=jdbc:mariadb://localhost:3306/board

spring.datasource.username=스키마계정

spring.datasource.password=비밀번호

 

테스트 데이터 프로시저 생성

DELIMITER $$

CREATE PROCEDURE testDataInsert()
BEGIN
    DECLARE i INT DEFAULT 1;

    WHILE i <= 120 DO
        INSERT INTO board(title, content)
          VALUES(concat('제목',i), concat('내용',i));
        SET i = i + 1;
    END WHILE;
END$$
DELIMITER $$
728x90
반응형

1) 프로젝트 생성

다음 순서로 Spring Boot 프로젝트를 생성합니다.

 

 

2) main 밑에 디렉토리 생성

webapp/WEB-INF/jsp

 

3) application.properties 설정

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

 

4) build.gradle 설정

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'

728x90
반응형

findAll의 매개변수로 Sort.by(Sort.Direction.DESC, "id")

 

이런 식으로 넘겨주면 id 컬럼을 기준으로 내림차순 정렬해줍니다. 

public List<Article> articleList() {
        List<Article> list = articleRepository.findAll(Sort.by(Sort.Direction.DESC, "id"));
        return list;
}

'Java Web > JPA' 카테고리의 다른 글

[JPA] persistence.xml 작성 예시  (0) 2022.03.02
[JPA] 연관 관계 편의 메소드  (0) 2022.02.28
[JPA] 양방향 관계 매핑 @OneToMany, @ManyToOne 그리고 mappedby  (1) 2022.02.16
[JPA] Auditing 정리  (0) 2022.02.14
[JPA] JPA란?  (0) 2021.05.13

+ Recent posts