본문 바로가기
with my rubber duck

순수JDBC 자바연동 미니 프로젝트 최종 후기

by stilinski 2022. 5. 13.
728x90

처음 팀플이지만 뭘 만들지 구상만 같이하고 구현은 각자 하는 거기 때문에 거의 개인 프로젝트에 가까운 프로젝트였다.

- 플젝주제

우리 조는 호텔 안에 있는 음식점들 예약하는 프로그램을 만들자~ 가 주제였다.
대략 푸드코드 같은 거였는데 나는 차라리 푸드코드 키오스크를 벤치마킹해서 무언갈 만들어보는 게 낫다고 생각했지만 조원이 8명이나 돼서 의견이 하나로 합쳐지는 게 쉬운 일이 아니었다. 그래서 내가 만들고 싶은 것을 강력하게 피력할 수만은 없었기 때문에 적당히 의견을 내고 서로서로 조율을 해서 결론적으로 호텔 안에 있는 음식점들을 예약하고 예약할 때 음식도 같이 주문하는 뭔가 여러 가지가 짬뽕이 된 거 같은 프로그램을 만들게 되었다 ㅋㅋㅋㅋㅋ 어차피 연습용 프로젝트라서 비록 실용성은 없지만 나름 재밌었음.

- 핵심기능

초기에 이렇게 구상했지만 나는 관리자를 음식점마다 1명씩 하는 걸로 해서 좀 달라졌다.

- 사용된 기술

- sql CRUD
- 테이블 조인해서 값 가져오기
- 복합 키를 가진 테이블 구현
- 등등?

- ERD

관계설정이 제대로 안됐다

조원들과 만든 ERD. 근데 다들 이대로 사용하진 않았을 거다..ㅋ
구상 자체가 온전하지 못했기 때문에 다들 몇 개씩 빼거나 더해가면서 했을 듯




- 구현(각자)


내 거 디렉터리 사진.
와 뭐 많다
ㅋㅋㅋㅋㅋㅋㅋㅋ
아니 판을 너무 크게 벌려놨어
사실 이 프로젝트에서 서비스까지는 필요 없지만 예습한다는 생각으로 한번 해봤다.
이게 스프링을 이용한 웹 개발? 이 아니라서 리파지토리랑 도메인 이런 파일명은 이 프로젝트에는 적절하지 않은 거 같고, 저렇게 나누는 것도 썩 적절하지 않은 거 같다. 특히 컨트롤러랑 서비스를 나누는 게 애매했음. 그래도 곧 스프링 배우기 시작하면 이제 저런 식으로 나눠가면서 해야 하니까 미리 개념들을 예습한다는 차원에서 나눠봄.







사실 팀원들끼리 구상한 거에는 관리자가 1명이었는데,,,
나는 음식점이 여러 갠데 관리자가 1 명인 게 좀.. 아무리 연습용으로 만드는 프로그램이라지만 너무 말이 안 되는 거 같아서 음식점마다 관리자 비밀번호를 만들어서 관리자를 여러 명으로 설정하는 기능을 만들기로 했다.
만들다 보니 아이디가 있으면 더 좋겠다 싶었지만 관리자를 여러 명을 하는 거에서도 이미 충분히 복잡해졌기도 했고, 팀원끼리 구상한 거에서 너무 벗어나서 안 했다.










나는 sql문을 써서 단순하게 불러올 수 있는 것들을 다 자바 코드로 추출해냈다.
즉 정말 복잡해짐 ㅋㅋㅋㅋㅋ

이것들 다 sql문으로 단순하게 불러올 수 있었던 것들. 이거말고도 더 많다.

나는 관리자를 여러 명으로 했기 때문에 기존에 구상했던 거 두배로 sql을 짜야했다. 근데 이렇게 한 이유는 단순히 sql로 불러오는 건 너무 쉽고 또 반복되는 코드가 너무 많이 생겨버리기 때문에 별로 안 이쁜 느낌...?이라서. 성능 측면에서 봤을 때는 그냥 단순히 sql문으로 불러오는 게 나을지도 모른다. 그런데 이 프로젝트는 어차피 그냥 연습용이기도 하고 어차피 내가 실무에 가서 순수 JDBC로 무언갈 만 들일은 없을 것이라고 생각해서....(그렇겠지..?) 최대한 자바단에서 뭔가 더 해보고 싶다는 생각에 일을 더 복잡하게 만들었다... 그래도 다 해냈음.

저걸 다 sql로 불러왔으면 이런 식의 코드가 쌓였을 것.
이런식의 코드는 뭔가... 별생각 없이 그냥 짤 수 있는 코드들이다. 약간 단순 반복 같은 느낌적인 느낌...? 근데 또 오타 한 개라도 있거나 공백 하나라도 잘못 입력되면 안 돌아감. ㅋ 필드가 많아지면 hell 그 자체. 사실 이짓이 하기 싫어서 다 자바로 하려고 한 것도 있음. 요즘 세상은 좋아져서 이렇게 안 해도 된다던데 빨리 선진기술을 배우고 싶다.


++
그런데 이런 반복되는 코드들을 선진기술을 쓰지 않고도 줄일 수 있는 엄청난 방법이 있었다.
다른 조 중에서 엄청나게 잘하는 사람이 있었는데 그 사람이 올린 코드를 훔쳐보다가(?) 발견했다.
그리고 그 사람은 내가 해보고 싶었던 JFrame까지 써서 ui도 구현했다! 예전에 시험 봤을 때도 그 사람 꺼 보면서 공부했는데 이번에도 그래 봐야겠다 ㅎ



아쉬운 점


1. 예약 인원수에 따라 음식점 예약 가능 인원수를 변동되게 설정하는 기능 구현 못함.
조원들 뭐 나포함 다들 이런 프로젝트는 처음 해보는 사람이 대부분이어서(아마 모두 다) 프로젝트 구상을 할 때 다들 뭘 정해야 할지 갈피를 못 잡았다. 한 번도 해본 적이 없으니 어떤 기능을 만들고자 할 때 무엇을 고려하면서 정해야 하는지 전혀 알지 못했다. 그런 상태로 어영부영 음식점마다 수용 가능 인원수를 만들고 예약이 들어올 때마다 예약 가능 인원수를 변동되는 기능을 넣자고 정했다. 그런데ㅋ 이걸 구현해낸 사람이 아무도없다 ㅋㅋㅋㅋㅋㅋㅋㅋ
이 기능의 문제는 예약 가능 인원수가 매일 매일 지정되어야하고 또 예약이 들어온 날에 맞춰서 매일 예약 가능 인원수도 달라야했다는 점이다. 그냥 하루면은 update문으로 예약가능 좌석수를 바꾸면 되지만 맨날 달라야 하는데 테이블 데이터를 바꿔버리면,,, 다른 날은 어떡하라는 거임. 더 생각해보면 구현할 수 있을 거 같기도 하고,,,,, 아리송하지만 아무튼 아무도 구현을 못했다. 이제.. 다른 걸 하고 싶다. ㅋ
아무튼 못해서 아쉽긴 하지만 다음에 프로젝트를 구상할 때는 좀 더 현실적으로 구상할 수 있을 거 같다



2. 원활하지 못했던 팀원들 간에 소통
원래는 선생님이 매일매일 어디까지 했는지 팀원들끼리 확인해가면서 하라고 했는데 어떤 조도 그렇게 하지 않았다. ㅋㅋㅋㅋ 나는 그렇게 하고 싶어서 한번 내가 주도해서 우리 조 몇 명 꼬드겨서 했었는데 영 엉성했다. 뭘 어떻게 공유해야 할지 알 수 없었다. 그리고 다들 뭔가 계속 오류가 떠서 구현하기 바빠서 공유할 여유가 없어 보였다. ㅠㅠ 이게 좀 아쉽다. 근데 이번 팀플은 거의 개인 프로젝트에 가까워서 더 그랬던 거 같다.
그래도 마지막에 내가 제안해서 우리 조원들 모두 어느 정도까지, 어떻게 했는지 다같이 공유했다. 이런 거 처음 해봐서 재밌었다.





배운 점

1. 자신 있고 관심이 있으니 열정적이게 된다.
대학생 때부터 하기 싫었던 팀플. 어쩌면 초등학생 때부터 그랬던 거 같기도 하다. 지금까지 단 한 번도 팀플을 하고 싶다거나 팀원들과 뭔가 막 하고 싶다는 생각이 든 적이 없다. 그런데 프로그래밍을 배우면서 팀플을 꼭 하고 싶어 졌고 팀플을 하는 과정에서 내가 제일 열정적?ㅋㅋ 적극적이어서 놀랐다. 나도 이런 면이 있구나 싶었다. 심지어 자진해서 발표도 했다 ㅋㅋㅋ 생각해보면 지금까지 해왔던 팀플이 다 내가 그렇게 자신 없는 것들이어서 적극적이지 못했던 거 같다. 잘 알지도 못하는데 무슨 말을 하겠음..? 그런데 여기서는 좀 안다고 적극적이게 됐다. 재밌다.

2. 혼자 삽질했던 게 다 공부가 됐었다.
내 코드가 엄청나게 좋은 코드라고 생각하지는 않지만 솔직히 프로젝트를 구현하는 데에는 별로 어려움은 없었다. 그런데 다른 팀원분들 대부분은 많은 어려움을 겪었고,, 나는 왜 뭐가 어려운지 도대체 어떤 오류가 나는 건지 너무 궁금해서 처음엔 몇 번 물어봤는데 여러 번 물어보면 재수 없게 들릴 거 같아서 닥치고 있었다.
나는 이게 혼자 무언가 작은 거라도 만들어본 적이 있냐 없냐에서 온 차이라고 생각한다. 복습도 복습인데 나는 프로젝트하기 전에 매일매일 수업 끝나고 항상 복습이랑 배운 거를 토대로 뭘 만들어보면서 기본 4시간은 코딩을 했다. 말이 4시간이지 실제 앉아있었던 시간은 6시간은 됨. 초반에는 맨날 2시 3시 넘어서 자고 그랬으니까. 그런데 난 항상 불안했다. 그렇게 긴 시간을 앉아있는데 항상 뭔가... 시간을 그냥 흘러보낸 느낌이 들어서였다. 6시간 앉아있어도 6시간동안 빡 집중해서 코드를 짜는 게 아니라 자꾸 뭔 오류떠서 그거 찾느라고 몇시간 보내고,,, 또 내가 원하는대로 안되면 검색해보느라 몇시간 지나가고 하니까 뭔가 집중해서 공부를 한 느낌이 안드는 거다. 그래서 난 항상 이렇게 하는게 맞는건가 도움이 되고 있는건가 불안했는데 프로젝트를 진행해보니까 알겠다. 그런것들이 다 도움이 되고있었다. 그렇게 혼자 헤매면서 이해했던 작은 것들이 모여서? 뭔가 나는 자동적으로 이해가 되는 게 많아졌다. 좀 추상적인 것들이라 그게 무엇인지 명확하게 설명은 못하겠지만 하여튼 그렇다. 물론 다른분들도 이번 프로젝트를 계기로 내가 혼자 삽질했던 시간들을 겪으면서 배우시겠지만 나는 그걸 미리 했으니 뭔가 .. 삽질이 도움이 되고 있었다는 깨달음?? 을 좀 더 빨리 얻었다. ㅋㅋㅋ
이게 문과식 공부법이랑 개발 공부법의 차이인 건가 싶다. 나는 평생 문과였어서 항상 책으로 공부하고, 한 번에 빡 집중해서 공부하는 게 익숙해서 개발 공부법이 너무 생소하게 느껴졌다. 그래서 처음에는 나랑 안 맞나 걱정이었는데 이걸 지금 2달을 연달아서 하니까 이제 무슨 느낌인지 알겠고 좀 적응한 거 같다. 뭔가 신세계 같은 느낌? 아무튼 이제 내가 잘하고 있는 건지 불안해하지 않고 하던 대로 열심히 하면 된다는 확신 비슷한 것을 얻었다.




728x90

'with my rubber duck' 카테고리의 다른 글

자바스크립트 htmlelement or node to array  (0) 2022.08.23
.gitignore 사용하기  (0) 2022.05.24
프로젝트 진행중  (0) 2022.05.10
삽질 3시간. 청산  (0) 2022.04.26
맨날 찾아쓰기 귀찮아서 깃허브 코드 순서  (0) 2022.01.06

댓글