"Not Found to Well-Founded" 에러 속에서 정답을, 침묵 속에서 코드를 찾아내는 4명의 디버거들입니다.
웹 브라우저가 길을 잃었을 때 404 에러를 내뱉듯, 우리도 학습 과정에서 수많은 시행착오(Error)를 마주합니다. 하지만 우리는 이 에러를 실패로 정의하지 않습니다. 4명의 전공자가 모인 **'404 ERROR'**팀은 에러 메시지를 성장을 위한 가장 정확한 이정표로 삼아, 완벽한 '200 OK' 서비스를 향해 나아갑니다.
본 프로젝트는 Java 콘솔 기반의 텍스트 게시판 서비스로, 객체지향 설계와 효율적인 데이터 관리 및 팀 협업 프로세스 경험에 중점을 둡니다.
| 기능 분류 | 명령어 | 상세 설명 | 담당자 |
|---|---|---|---|
| 시스템 | exit |
프로그램을 안전하게 종료합니다. | 공통 |
| 게시글 작성 (C) | write |
제목과 내용을 입력받아 새 게시글을 생성하고 고유 번호를 부여합니다. | 정환철 |
| 게시글 목록 (R) | list |
저장된 모든 게시글을 번호순으로 출력합니다. (기본 최신순 정렬) | 장성재 |
| 게시글 상세 (R) | detail [id] |
입력한 번호와 일치하는 게시글의 상세 내용을 확인합니다. | 장성재 |
| 게시글 수정 (U) | update [id] |
특정 번호 게시글의 제목과 내용을 수정합니다. | 김세준 |
| 게시글 삭제 (D) | delete [id] |
특정 번호의 게시글을 리스트에서 영구히 삭제합니다. | 최준열 |
- Scanner 활용:
Scanner클래스를 통해 사용자로부터 명령어 및 데이터(제목, 내용 등)를 입력받습니다. - Rq 클래스: 입력된 명령어 문자열을 분석하여 명령어 본체와 인자(id 등)를 분리하여 처리합니다.
- Article DTO: 게시글 데이터(번호, 제목, 내용, 작성일)를 하나의 객체로 캡슐화하여 관리합니다.
- ArrayList: 게시글 객체들을 가변 크기 리스트인
ArrayList<Article>에 저장하여 관리합니다.
- 날짜 자동 생성:
LocalDate.now()를 활용하여 글 작성 시점의 날짜(yyyy-MM-dd)를 자동으로 기록합니다. - ID 자동 부여: 게시글이 생성될 때마다 마지막 번호의 다음 번호를 자동으로 할당합니다.
- 객체지향 설계: 데이터(
Article), 요청 분석(Rq), 실행 로직(App), 진입점(Main)을 분리하여 유지보수성을 높였습니다. - 계층형 구조: 각 기능(CRUD)을 메서드 단위로 분리하여 코드의 가독성을 높이고 협업 시 충돌을 최소화했습니다.
- 데이터 검증: 존재하지 않는 번호로 상세 조회, 수정, 삭제를 요청할 경우 적절한 안내 메시지를 출력하여 프로그램의 안정성을 확보했습니다.
- Branch:
feature/기능명브랜치 활용 (예:feature/article-create) - PR: 최소 1명의 Approve 후 Merge 진행
- Commit:
feat:,fix:,docs:,refactor:등의 접두어 사용
- Issue: 작업 시작 전 "무엇을 하나요?"와 "To do" 리스트를 작성하여 할 일을 명확히 정의합니다.
- PR Rule: 최소 1명 이상의 리뷰어로부터 승인(Approve)을 받아야 Merge가 가능합니다. 템플릿에 따라 변경 사항(What)과 관련 이슈 번호를 기입합니다.
명령어: write
제목: 자바 공부
내용: 자바 텍스트 게시판 만들기
=> 게시글이 등록되었습니다.
명령어: list
번호 | 제목 | 등록일
-----------------------------
1 | 자바 공부 | 2026-02-10
명령어: detail 1
번호: 1
제목: 자바 공부
내용: 자바 텍스트 게시판 만들기
등록일: 2026-02-10