본문 바로가기
SpringBoot

BankApp - 패키지 설정

by 남행비 2023. 9. 19.

학습 목표

1. 패지키 및 폴더 구조 잡기

정적 자원 관리 src/main/resources/static ← 정적 자원 루트 폴더

CSS, js, images,

 

JSP 파일을 활용하기 위해 선행해야 할 규칙 webapp/WEB-INF/view/ …

 

자바 코드를 담을 패키지 설정

controller

service

dto

repository

repository → model

repository → interfaces (DAO 연동)

 

JSP 파일을 활용하기 위해 선행해야 할 규칙

자바 코드를 담을 패키지 설정

 

MVC 패턴에 대한 개념 정리

MVC(모델-뷰-컨트롤러) 패턴은 소프트웨어 디자인 및 소프트웨어 아키텍처 패턴 중 하나로, 주로 웹 애플리케이션 및 사용자 인터페이스(UI) 개발에서 많이 사용됩니다. 이 패턴은 애플리케이션을 세 가지 주요 구성 요소로 나누어 관리하고, 각 구성 요소 간의 상호 작용을 조직화하는 데 사용됩니다. 이러한 구성 요소는 다음과 같습니다:

  1. 모델(Model): 모델은 애플리케이션의 비즈니스 로직, 데이터 및 상태를 나타냅니다. 모델은 데이터베이스와 상호 작용하거나 애플리케이션 내부에서 데이터를 처리하며, 데이터의 상태를 유지하고 관리하는 역할을 합니다. 모델은 주로 데이터를 다루고 비즈니스 논리를 정의하는데 사용됩니다.
  2. 뷰(View): 뷰는 사용자 인터페이스(UI)를 나타냅니다. 이것은 사용자에게 정보를 표시하고 모델에서 가져온 데이터를 사용자에게 시각적으로 표시하는 역할을 합니다. 뷰는 사용자와 상호 작용하고 사용자 입력을 처리하지 않으며, 단순히 데이터를 표시하는 역할을 합니다.
  3. 컨트롤러(Controller): 컨트롤러는 모델과 뷰 간의 상호 작용을 조정하는 역할을 합니다. 사용자의 입력을 처리하고 모델을 업데이트하며, 이후에 모델의 변경 내용을 반영하여 뷰를 갱신합니다. 컨트롤러는 사용자와 상호 작용하고 사용자 입력을 해석하여 모델 및 뷰에 대한 적절한 동작을 수행합니다.

MVC 패턴은 소프트웨어를 분리하고 모듈화하여 유지 보수성을 높이고 코드의 재사용성을 증가시키는 데 도움이 됩니다. 또한 여러 개발자들이 동시에 작업하는 대규모 애플리케이션에서 팀 작업을 관리하고 역할을 분담하기 쉽게 만들어줍니다. 이 패턴은 코드의 가독성을 향상시키고 디버깅을 용이하게 만들어 개발 과정을 단순화하는 데 도움이 됩니다.

 

네이밍 컨벤션 정해보기

정적 파일 : css, xml , js → xx_xx.css, xx_x.js : 스네이크 케이스로 작성 해보자

jsp 파일 : 카멜 노테이션 → home.jsp, accountPage.jsp

자바파일 : 파스칼케이스 → HomeController.java

폴더 및 패키지명 : 소문로 시작하는 스네이크 케이스

 

HTML 파일 : id 값 —> 카멜 노테이션

CSS : xxx- - xxx (외부 라이브러 class 명과 충돌 방지)

 

데이터 베이스

테이블 : 스네이크 케이스 작성 예정

 

서비스 레이어 메서드 네이밍에 대한 고민

대표적으로 사용되는 네이밍 컨벤션 규칙으로는 다음과 같은 것들이 있습니다.

 

CRUD 기능을 수행하는 메서드는 각각 create, read, update, delete로 시작하는 것이 일반적입니다. 예를 들어, createUser, readUser, updateUser, deleteUser와 같이 작성합니다.

 

목적에 따라서 findBy, findAllBy, countBy와 같은 접두어를 사용하여 메서드 이름을 작성하는 것이 일반적입니다.

 

메서드 이름은 특정 도메인 객체를 처리하는 것을 나타내도록 작성하는 것이 좋습니다.

예를 들어, getOrderListByUserId()와 같이 작성합니다.

 

'SpringBoot' 카테고리의 다른 글

BankApp - DB 접근 기술  (0) 2023.09.19
BankApp - db 설정(h2 DB)  (0) 2023.09.19
BankApp - 모델링  (0) 2023.09.19
BankApp - yml 파일 설정  (0) 2023.09.19
BankApp - 프로젝트 설정  (0) 2023.09.19