JS-Developer (백엔드 개발세팅)

남재상·2025년 4월 18일

JS-Developer

목록 보기
3/5

JS-Developer 백엔드 개발세팅

백엔드 작업 전 세팅 및 디렉토리


Spring initializr

1. 세팅

2. Dependencies

  1. Spring Web

    • 웹 애플리케이션 개발을 위한 모듈로, HTTP 요청과 응답을 처리하는 기능을 제공
    • Spring MVC 구조 설계
    • REST API 개발 및 Handler와 Controller
  2. Lombok

    • getter/setter, 생성자, toString 등 코드 생략가능
  3. Spring Data JPA

    • 스프링 부트 버전에 맞춰 자동으로 JPA관련 라이브러리들의 버전을 관리
  4. MySQL Driver

    • MySQL 데이터베이스와 연결하기 위해 필요한 JDBC 드라이버

Tool

IntelliJ 세팅

1. Project Structure

  • openjdk 23버전 사용

2. setting

  • Build and run using / Run tests using을 intellij IDEA로수정

  • Java compiler -parameters로 적용
    - @PathVariable, @RequestParam 등을 사용할 때 파라미터의 이름을 생략할 수 있도록 컴파일러 옵션을 설정

3. application.properties

spring.application.name=JSDEV


# MySQL 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# DB Source URL
spring.datasource.url=jdbc:mysql://localhost:3306/비밀

serverTimezone=UTC&characterEncoding=UTF-8

# DB 계정명 및 비밀번호
spring.datasource.username=root
spring.datasource.password=비밀

# JPA 쿼리문 확인 가능
spring.jpa.show-sql=true

# DB의 고유 기능 사용 가능
spring.jpa.hibernate.ddl-auto=update

# SQL의 가독성 높임(JPA 구현체인 Hibernate 동작)
spring.jpa.properties.hibernate.format_sql=true

ERD

작성순서

  1. 요구 기능 정의
  2. 엔티티 도출 및 테이블 생성
  3. PK, FK 및 컬럼 정의
  4. 정규화
  5. 관계 설정 (ERD 그리기)

결과


POSTMAN

추가하기

디렉토리 구조

  • 도메인 아키텍처 기반 + MVC (Model-View-Controller) 패턴 적용

도메인 아키텍처란?

비즈니스 기능 단위로 폴더/모듈을 나누는 아키텍처 설계 방식

  • 예: member, order, board, auth
  • 각각의 도메인 안에 Controller, Service, Entity, Repository 등 계층들을 포함
  • 유지보수성, 확장성, 관심사 분리에 유리함

MVC 패턴이란?

요청 흐름을 역할에 따라 나누는 아키텍처 패턴

구성 요소역할 설명예시 구성
Controller클라이언트의 요청을 받고 응답 반환@RestController
Service비즈니스 로직 처리MemberService.java
RepositoryDB 접근 및 데이터 처리MemberRepository.java
DTO / Entity데이터 전달 및 저장 객체MemberDto, Member

개발 디렉토리

폴더명역할
auth🔐 인증 및 인가 관련 로직 관리 (로그인, JWT, 필터 등)
common🧰 전역에서 재사용되는 유틸리티, 상수, 공통 응답 객체 등
config⚙️ Spring 설정 관련 클래스들 (예: WebMvcConfigurer, Security 설정 등)
devx📦 비즈니스 도메인(여기선 devx 관련 기능)을 담당하는 메인 패키지
    └─ controller🎮 클라이언트 요청을 처리하는 계층 (REST API 엔드포인트 등)
    └─ dto📦 클라이언트와 주고받는 데이터 객체 (Data Transfer Object)
    └─ entity🗃 DB 테이블과 매핑되는 JPA 엔티티 클래스
    └─ event📣 이벤트 기반 처리용 클래스 (예: 도메인 이벤트, 알림 등)
    └─ repository🧱 DB 접근을 담당하는 계층 (JPA Repository 인터페이스 등)
    └─ service🔧 비즈니스 로직을 수행하는 핵심 계층
exception🚨 사용자 정의 예외, 글로벌 예외 처리 핸들러 등 관리

profile
작은 코드 하나에도 책임을 담는 개발자입니다!

0개의 댓글