웹 개발을 하다 보면 자주 보게 되는 용어들이 있습니다. 특히 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 기반 웹 프로젝트에서는 다음과 같은 구조로 데이터가 흐릅니다:
- .xml
- 설정 파일 (Bean 등록, DB 연결 설정 등)
- DAO.java
- DB와 직접 통신하는 클래스 (쿼리 실행, CRUD 등)
- Service.java
- 비즈니스 로직 인터페이스
- ServiceImpl.java
- Service 구현체 (실제 로직 처리)
- Controller.java
- 사용자 요청을 받아 Service 호출, 응답 반환
- .jsp
- 동적 웹페이지. 사용자에게 보여질 화면 담당
✅ 소스 코드와 리소스 파일의 차이
내용 | 로직 구현 (Java, JS 등) | 설정, 이미지, 텍스트, 데이터 등 |
컴파일 | 컴파일됨 (기계어로 변환됨) | 일반적으로 컴파일되지 않음 |
사용 목적 | 기능 구현 | 데이터 또는 설정 관리 |
예시 디렉토리 | src/main/java | src/main/resources |
'컴퓨터 과학' 카테고리의 다른 글
내가 데이터 사이언티스트가 되기 위해 공부해야 할 것들 (컴퓨터) (0) | 2023.06.21 |
---|