음.. 원래 나의 의도는 토스어플을 벤치마킹해서 자바 콘솔로 만들어 보고싶었지만 살짝 문제가 많아서 기본 은행에 대한 기능들만 넣자고 팀원과 타협했다.
1.회원: 로그인 및 회원가입, 아이디/비밀번호 찾기, 마이페이지 기능
-
계좌: 계좌 개설 및 조회, 해지
-
이체기능 : 당행 이체, 타행 이체, 자동 이체
-
카드 관리 기능 : 연동 통장 확인, 연회비 확인, 카드 해지
-
환전 기능 : 외환 조회, 외환 구매
- 계좌 관리 기능 개발
계좌 개설: 사용자가 일반 예금 통장과 적금 통장을 선택하여 개설할 수 있도록 구현하였다. 계좌번호는 고정된 앞자리와 랜덤 생성된 뒷자리를 조합하여 고유한 계좌번호 부여
예시) 일반 통장: 110-431 고정 -123456 (난수) 적금: 110-660 고정 -123456 (난수)
잔액 입력: 일반 통장의 경우 계좌 개설 시 사용자가 입력한 잔액을 기록하고, 적금 통장의 경우 상품과 납부일을 선택하면 계좌가 생성된다.
2.계좌 조회: 회원이 보유한 모든 계좌를 조회할 수 있는 기능을 개발하였다. 이를 통해 사용자는 자신의 계좌 상태와 잔액을 손쉽게 확인할 수 있다.
3.계좌 해지: 사용자가 계좌 해지를 원할 경우, 잔액이 0원인 계좌만 해지할 수 있도록 하여 유효성을 추가하였다. 이를 통해 불필요한 해지나 오작동을 방지
- 데이터 저장 : 계좌 정보는 텍스트 파일을 통해 관리되며, 각 계좌의 정보가 파일에 저장되도록 하여 프로그램이 종료되더라도 데이터가 유지
학원에서 만난 소중한 인연인 팀원과 함께 프로젝트를 완성해 나가는 과정을 통해 많은 것을 배웠다. 팀원과 함께 각자 맡은 파트를 나누고 기능 구현을 해 나가면서 협업의 중요성을 실감했다. 무엇보다 짧은 시간 내에 목표를 달성해야 하는 압박감 속에서도 팀원들과 협력하면서 아이디어를 나누고, 코드를 합치며 최종 결과물을 만들어 나가는 과정이 인상 깊었다. 특히 오랜만에 함께 팀 작업을 하다 보니 처음엔 약간 어색했지만, 점점 소통이 자연스러워졌고, 예전처럼 서로 피드백을 주고받으며 협력하는 재미를 다시 느낄 수 있었다.
요구 기능을 분석하고 세부적으로 나누는 작업이 생각보다 시간이 많이 소요되었고, 세심한 주의가 필요한 작업이라는 걸 다시금 느꼈다. 이번 프로젝트에서 나는 사용자의 입장에서 어떤 기능이 필요할지를 먼저 고민하고, 이를 기준으로 요구사항을 정리해보는 방식으로 분석을 진행했다.
나의 의견 제시:
한정된 시간 내에 작더라도 완벽한 기능을 만들자는 방향으로 목표를 설정하게 되었다. 기능을 덜어내는 과정에서 아쉬움이 남았지만, 완성도를 높이기 위해 그 방향이 맞았다고 생각한다.
프로젝트 진행 중 가장 궁금했던 부분은 **"각자가 구현한 코드를 어떻게 합칠 것인가?"**였다. 이 부분은 팀원들과의 여러 번의 회의를 통해 결국 파일 입출력을 공통적으로 사용하는 방식으로 텍스트 파일에 데이터를 저장하는 클래스를 구현하였고, 이를 통해 각자의 기능을 조화롭게 통합할 수 있었다. 특히 이 부분에서 코드를 합치는 과정과 반복적인 테스트가 중요한 경험이 되었다.
클래스 설계와 메서드 구성 처음에는 어떤 클래스를 어떻게 분리하고, 메서드를 어떻게 효율적으로 구성해야 할지에 대한 감이 잘 잡히지 않았다. **OOP(객체지향 프로그래밍)**의 개념은 배웠지만 실제로 구현할 때 순서와 구조를 정리하는 부분이 간단하지는 않았다. 특히, 간단한 기능이라 생각했던 것들도 실제 구현 과정에서 유효성 검사와 같은 세부적인 부분을 추가하는 데 시간이 많이 걸렸다. 이런 점에서 꼼꼼하게 체크하고 테스트하는 과정에서 많은 시간을 할애하였다.
가장 아쉬운 점은 시간 부족으로 인해 기능을 완벽하게 구현하지 못한 부분이다. 처음 프로젝트를 시작할 때, 모든 기능을 다 구현하는 것에 대한 욕심이 있었지만, 시간이 지나면서 핵심적인 기능에 집중하고 완성도를 높이는 쪽으로 전환하게 되었다. 파일 입출력을 사용해본 것도 시간이 많이 걸린 부분이었고, 이 부분에서 더 빠르고 효율적으로 처리할 수 있는 데이터 포맷 JSON 형식처럼 구조화된 데이터 포맷을 사용했다면 더 효율적이고 유지보수도 쉬웠을 것이라는 아쉬움이 남는다.
이번 프로젝트를 통해 가장 큰 학습은 협업의 중요성이었다. 각자의 역할을 명확히 나누고, 상호 소통을 통해 문제를 해결하는 과정에서 많은 것을 배웠다. 또한, 문서화 작업을 통해 요구사항 분석의 중요성도 깨닫게 되었고, 기능 구현 시 세부적인 점검이 얼마나 중요한지 경험할 수 있었다. 제일 중요한게 요구사항 분석인거같다.
앞으로 해야 할 일은 Git과 GitHub의 활용 방법에 대해 더 깊이 공부하여, 버전 관리와 협업을 더 효율적으로 진행할 수 있도록 해야 한다.