• 티스토리 홈
  • 프로필사진
    imaginaring
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
imaginaring
  • 프로필사진
    imaginaring
    • 분류 전체보기 (66)
      • 프로그래밍 (30)
        • 알고리즘 자료구조 (0)
        • 문제풀이 (0)
        • 기록 (3)
        • Java (4)
        • 스프링, JPA, MyBatis (11)
        • JS, 리액트 등 웹 프론트 (11)
        • 파이썬 (1)
      • DB (1)
        • MySQL (1)
      • 네트워크 (6)
        • AWS (2)
        • NCP (0)
        • 클라우드 공통 (2)
        • 네트워크 (2)
      • OS (9)
        • 리눅스 (8)
        • 윈도우 (1)
      • 게임엔진 (4)
        • 유니티 (0)
        • 언리얼 (4)
        • 그래픽스 (0)
      • 프로젝트 관리 (0)
        • Git & SVN (0)
      • 사이드 프로젝트 (0)
        • 외주 (0)
        • 아이디어 (0)
        • 기록 (0)
      • 프로젝트 (0)
      • 자격증 (15)
        • 리눅스마스터 (14)
        • SQLD (1)
        • 정보처리기사 (0)
        • 네트워크관리사 (0)
        • CCNA (0)
        • AWS SAA (0)
        • NCP (0)
      • 생활수학 (0)
      • 일상 (1)
        • 여행 (0)
        • 바이크 (0)
        • 기타 (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 웹 애플리케이션 계층 구조
        2024년 12월 16일
        • imaginaring
        • 작성자
        • 2024.12.16.:11

        1. 웹 레이어

        * 사용자 인터페이스와 관련된 입출력 처리를 담당

        * 흔히 '프리젠테이션 레이어' 또는 '컨트롤러 레이어' 라고도 불린다

        * HTTP 요청을 처리하고, 클라이언트 응답을 반환

          => Java : Spring MVC의 @controller 또는 @RestController

          => Node.js : Express.js의 라우터

          => Python : Django, Flask의 View

         

        2. 서비스 레이어

        * 비즈니스 로직을 담당

        * 데이터를 검증하고 처리하는 핵심 비즈니스 규칙을 포함

        * 웹 레이어와 퍼시스턴스 레이어 간의 중간 역활

        * 주요 작업 : 트랜잭션 관리, 퍼시스턴스 레이어 호출 등등

          => Java : Spring @Service

          => Node.js : 비즈니스 로직을 처리하는 서비스 클래스

          => Python : 장고의 서비스레이어 

         

        3. 퍼시스턴스 레이어

        * DB와의 직접적인 데이터 접근 및 조작(CRUD)을 담당

        * DAO(Data Access Object), Repository 패턴등을 사용하여 데이터 관리

        * 데이터 CRUD (생성, 조회, 수정, 삭제), 데이터 접근 추상화

        * 데이터 접근 로직을 분리하여 유지보수와 확장을 용이하게 함

          => Java : JPA, Hibernate, MyBatis

          => Node.js : Sequelize, Mongoose

          => Python : Django ORM, SQLAlchemy

         

        [클라이언트 요청]

        ↓

        | 웹 레이어 | ← 사용자 입력 처리, 응답 반환

        (Controller) 

        ↓

        | 서비스 레이어 | ← 비즈니스 로직 수행, 트랜잭션 관리

        | (Service Class) |

        ↓

        | 퍼시스턴스 레이어 | ← 데이터베이스 접근, 데이터 조작

        | (Repository) |

        ↓

        [데이터베이스]

         

        요약

        웹 레이어 : 클라이언트와의 인터페이스

        서비스 레이어 : 비즈니스 로직 처리

        퍼시스턴스 레이어 : DB 접근 및 관리

         

         

        ==== > 4계층으로 나누는 경우도 있는데, 서비스 레이어를 로직 레이어와 어플리케이션 레이어로 더 세부적으로 나누는 구조

         

        구성 3계층 구조 4계층 구조
        프리젠테이션 웹 레이어 웹 레이어
        애플리케이션 서비스 레이어에 포함 애플리케이션 레이어 (흐름 관리)
        비즈니스 로직 서비스 레이어 비즈니스 로직 레이어 (핵심 로직)
        데이터 접근 퍼시스턴스 레이어 퍼시스턴스 레이어

         

        '프로그래밍 > Java' 카테고리의 다른 글

        제네릭 클래스  (1) 2024.12.16
        자바에서의 예외처리 (Exception Handling)  (0) 2024.12.16
        자바 기초적인 내용들  (0) 2024.12.16
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바