Fullstack 65

heo4·2026년 7월 19일

Fullstack

목록 보기
20/70

풀스택

능력단위평가

CodeLog (board-project)

능력단위평가 제출

■ 배포 주소 (실제 동작 확인)
http://43.201.55.31:8080

주요 페이지

  • 홈 : /
  • 포스트 목록 : /board
  • 지식나눔 : /knowledge
  • 로그인 : /auth/login
  • 데이터사전(인덱스/뷰/FK 조회 + DDL 데모) : /admin/datadic (로그인 후 접근, 상단 메뉴에도 링크 있음)
■ 로컬 실행 방법
1. board-project_제출용.zip 압축 해제
2. MariaDB 실행
   cd board-project
   docker-compose up -d
3. application.yml의 DB 접속 정보 확인 (기본값: localhost:3306/board_db, root/1234)
4. 애플리케이션 실행
   mvn spring-boot:run
5. 브라우저에서 http://localhost:8080 접속
   (앱 최초 기동 시 DatabaseInitializer가 CREATE/ALTER/INDEX/VIEW DDL을 자동 실행함)
■ 요구사항 체크리스트

[요구사항]
1. MyBatis를 이용한 Mapper 생성
   -> PostMapper.xml, KnowledgePostMapper.xml    
   
2. 간단한 CRUD는 JPA Repository로 구현
   -> CommentRepository, PostLikeRepository, TagRepository, UserRepository 등
   
3. 테이블 생성(CREATE)/수정(ALTER)/삭제(DROP) DDL이 Mapper에 반영
   -> PostMapper.xml: createPostStatsTable(CREATE), alterPostsAddThumbnail(ALTER),
      dropPostStatsTable(DROP)
   -> 앱 실행 시 DatabaseInitializer가 CREATE/ALTER 자동 실행
   -> DROP은 /admin/datadic 화면의 "DROP -> CREATE 실행" 버튼으로 실제 동작 확인 가능
      (post_stats는 서비스 로직에서 사용하지 않는 DDL 검증 전용 테이블이라 안전하게 실행됨)

4. 생성된 테이블의 인덱스/뷰 목록 확인용 데이터사전 조회 명령문 작성
   -> PostMapper.xml: selectTableList / selectTableColumns / selectIndexList /
      selectViewList / selectForeignKeyList (INFORMATION_SCHEMA 기반)
   -> /admin/datadic 화면에서 실제 조회 결과 확인 가능

5. 완성된 프로젝트를 AWS에 배포
   -> AWS Lightsail(EC2 유형) http://43.201.55.31:8080 배포 완료
[기본 SQL]
- 테이블 목록/구조/제약조건(PK, FK, NOT NULL) 조회
  -> selectTableList(테이블 목록), selectTableColumns(PK/NOT NULL 등 컬럼 구조),
     selectForeignKeyList(FK 전용 조회) — /admin/datadic에서 확인
- JOIN/서브쿼리/집합연산자 1개 이상 반영된 조회
  -> PostMapper.xml searchPosts: JOIN users + 댓글수/좋아요수 서브쿼리
     (게시글 목록/검색 기능에 실제로 사용됨)
- DDL(CREATE/DROP/ALTER) 실제 테이블 구조 반영
  -> DatabaseInitializer 실행 로그(app.log) 또는 /admin/datadic에서 확인

[고급 SQL]
- 인덱스/뷰 목록 조회 명령문
  -> selectIndexList, selectViewList — /admin/datadic에서 확인
- 조회 성능용 인덱스 1개 이상 + 실제 쿼리 활용
  -> idx_posts_category (WHERE p.category = ... 에 활용)
  -> idx_posts_created_at (ORDER BY p.created_at DESC 에 활용)
  -> 둘 다 searchPosts(게시글 목록/검색)에서 실제로 사용됨

■ 참고

  • 상세 기술스택/DB설계/화면구성은 압축 파일 내 README.md 참고
  • 작업 이력은 압축 파일 내 NOTES.md 참고

0개의 댓글