본문 바로가기

컴퓨터 과학

웹 개발 개념 정리 - Java, Spring, React에서 자주 등장하는 용어들

반응형

웹 개발을 하다 보면 자주 보게 되는 용어들이 있습니다. 특히 Java 기반 프로젝트나 React 프로젝트에서는 디렉토리 구조나 파일 네이밍에서 의미를 파악하는 것이 중요합니다. 이번 글에서는 그 중에서도 자주 등장하는 키워드들을 정리해봤습니다.


✅ .do 확장자의 의미

.do는 Java 웹 애플리케이션에서 서블릿(Servlet)을 호출할 때 사용되는 확장자입니다.
예를 들어 getpopularcomment.do는 getpopularcomment라는 서블릿 핸들러를 호출해 인기 댓글을 가져오는 기능을 수행하게 됩니다.

  • **"do"는 action(행동)**을 의미하며, 요청을 실행한다는 의미가 내포되어 있습니다.
  • 서블릿은 자바 클래스로, 동적인 웹 기능(예: 데이터 조회, 처리 등)을 구현합니다.

✅ Redux란?

Redux는 JavaScript 애플리케이션의 상태(state)를 관리하기 위한 라이브러리입니다.
특히 React와 함께 자주 사용되며, 복잡한 컴포넌트 상태 관리를 예측 가능하게 만들어줍니다.

  • 핵심 개념
    • Store: 앱의 전역 상태 저장소
    • Action: 상태 변경을 위한 신호
    • Reducer: 액션을 기반으로 상태를 어떻게 바꿀지 정의
    • Dispatch: 액션을 실행하는 함수
  • 시간 여행 디버깅, 미들웨어 확장 등 강력한 기능 제공

✅ assets 디렉토리란?

assets는 **정적 파일(CSS, 이미지, JS 등)**을 모아두는 디렉토리입니다.
웹 프로젝트에서 사용자에게 보여질 리소스 파일들을 이곳에 관리합니다.


✅ utility와 utils

  • utility: 날짜 변환, 문자열 처리 등 재사용 가능한 도구 함수들을 의미합니다.
  • utils 디렉토리: 이러한 유틸리티 함수들을 한 곳에 모아놓은 폴더입니다.
    다양한 컴포넌트나 페이지에서 재사용할 수 있도록 합니다.

✅ store 디렉토리의 역할

Redux나 Vuex, MobX 같은 상태 관리 도구에서 사용하는 디렉토리입니다.

  • 구성 예시:
    • actions: 상태 변경을 일으키는 신호
    • reducers: 상태 변경 로직
    • selectors: 상태에서 값 추출
    • middleware: 비동기 처리 등 중간 작업 수행

✅ @core란?

@core는 **프로젝트의 핵심 기능(공통 로직)**을 담는 디렉토리입니다.

예:

  • 인증(Authentication)
  • DB 연결
  • 예외 처리
  • 로깅

다른 디렉토리에서 재사용 가능한 핵심 로직이 이곳에 모여 있습니다.


✅ AOP(관점 지향 프로그래밍)

AOP는 핵심 로직과 **공통 관심사(로깅, 트랜잭션 등)**를 분리하여 모듈화하는 방법입니다.

  • Advice: 적용할 기능(예: 로그 출력)
  • Pointcut: 적용할 위치(예: 모든 서비스 메서드)
  • Java에서는 주로 Spring AOP로 구현됩니다.

AOP를 사용하면 코드 중복을 줄이고 유지보수가 쉬워집니다.


✅ Spring 프로젝트에서 com의 의미

com은 Java 패키지 네이밍 관례로, 일반적으로 회사 도메인 이름을 반영합니다.
예: com.example.project → example.com 회사의 프로젝트


✅ 데이터 흐름의 구성 요소

Spring 기반 웹 프로젝트에서는 다음과 같은 구조로 데이터가 흐릅니다:

  1. .xml
    • 설정 파일 (Bean 등록, DB 연결 설정 등)
  2. DAO.java
    • DB와 직접 통신하는 클래스 (쿼리 실행, CRUD 등)
  3. Service.java
    • 비즈니스 로직 인터페이스
  4. ServiceImpl.java
    • Service 구현체 (실제 로직 처리)
  5. Controller.java
    • 사용자 요청을 받아 Service 호출, 응답 반환
  6. .jsp
    • 동적 웹페이지. 사용자에게 보여질 화면 담당

✅ 소스 코드와 리소스 파일의 차이

항목소스 코드리소스 파일
내용 로직 구현 (Java, JS 등) 설정, 이미지, 텍스트, 데이터 등
컴파일 컴파일됨 (기계어로 변환됨) 일반적으로 컴파일되지 않음
사용 목적 기능 구현 데이터 또는 설정 관리
예시 디렉토리 src/main/java src/main/resources
반응형