Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

전자정부 프레임워크 학습

전자정부 프레임워크와 Spring MVC의 핵심 원리부터 실전 계층형 게시판 구현까지 학습한 내용을 정리한 프로젝트입니다.

개발 환경

  • Framework: eGovFramework 3.10.0, Spring Framework 5.3.6
  • Database: PostgreSQL (v42.3.8 Driver)
  • ORM: MyBatis 3.5.6
  • WAS: Apache Tomcat
  • Build: Maven

학습 내용 요약

이 프로젝트는 다음의 단계별 학습 내용을 포함하고 있습니다.

  • 프로젝트 구조: src/main/java, src/main/resources, src/main/webapp 등 표준 디렉토리 구조 이해.
  • Spring MVC 동작 원리: DispatcherServlet, HandlerMapping, Controller, ViewResolver의 흐름.
  • 데이터 전달:
    • Controller -> JSP: Model 객체 사용.
    • JSP -> Controller: Command Object (VO) 사용.
  • PostgreSQL 연동: context-datasource.xml, context-mapper.xml 설정.
  • Layered Architecture: Controller -> Service -> DAO -> Mapper -> DB 흐름 구현.
  • 로그인/로그아웃: HttpSession을 이용한 로그인 상태 관리.
  • 저장 프로시저: MyBatis에서 PostgreSQL 함수 호출 방법.
  • Logging (Log4j2): log4j2.xml 설정 및 slf4j를 이용한 로그 레벨 관리 (DEBUG, INFO, ERROR).
  • AOP (관점 지향 프로그래밍):
    • 핵심 로직과 공통 기능(로그, 트랜잭션 등) 분리.
    • @Aspect 어노테이션을 이용한 AOP 구현.
  • DB 설계: GROUP_NUM, GROUP_ORDER, GROUP_TAB 컬럼을 이용한 계층 구조 설계.
  • 답글 로직:
    • 부모 글의 정보를 바탕으로 자리 확보(UPDATE) 후 삽입(INSERT).
  • 수정 및 삭제: 작성자 본인 확인 및 논리적 삭제(UPDATE) 구현.
  • 페이징: LIMIT, OFFSET을 이용한 효율적인 페이징 처리.
  • 파일 업로드: MultipartResolver 및 UUID를 이용한 파일 저장.
  • 트랜잭션: @Transactional 및 AOP 설정을 통한 데이터 무결성 보장.
  • Ajax:
    • JSON: @ResponseBody와 Jackson 라이브러리 활용.
    • XML: JDOM을 이용한 XML 응답 생성 및 파싱.
  • 비밀번호 암호화: BCrypt를 이용한 안전한 비밀번호 저장 및 검증.
  • 세션 보안:
    • 세션 고정 공격(Session Fixation) 방어.
    • 인터셉터를 통한 로그인 체크 자동화.
  • XSS 방어: <c:out> 태그 및 Lucy XSS Filter 적용.
  • SQL Injection 방어: MyBatis #{} vs ${} 차이 및 안전한 쿼리 작성법.
  • 파일 업로드 보안:
    • 화이트리스트 기반 확장자 검증.
    • Path Traversal 공격 방어.
    • 웹쉘 업로드 차단.
  • CSRF 방어: Spring Security CSRF 토큰 적용.
  • 실무 체크리스트: 배포 전 필수 확인 항목.
  • JUnit 5: 단위 테스트 프레임워크 기초 및 어노테이션(@Test, @BeforeEach).
  • Mockito: Service 계층 테스트를 위한 Mock 객체 활용 (DAO 가짜 객체 주입).
  • MockMvc: Controller 테스트를 위한 가짜 브라우저 요청 및 검증.
  • TDD: 테스트 주도 개발 방법론 소개.
  • IntelliJ Debugger: 브레이크포인트, Step Over/Into, 변수 값 변경(Evaluate Expression) 활용법.
  • 로그 추적: Stack Trace 분석(Caused by 찾기) 및 로그 레벨 활용.
  • 자주 겪는 에러: 404, 500, BeanCreationException 등 대표 에러 원인 및 해결책.

About

전자정부 프레임워크

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors