[Spring_4기 본캠프] 일정관리 앱 과제 (Develop ver.) KPT 회고 | Day 46
◆ 일정관리 앱 (Develop version) KPT 회고
[ Keep ] :
1. 해보기 전부터 겁먹지 않고 도전 기능 구현을 시도해 봄
2. 검색을 하거나 챗GPT를 사용할 때 얻은 정보가 틀린 정보가 아닌지 의심해보고 사용하면서 올바르게 정보를 받아들이기 위해 노력함
3. 기능을 하나 구현할 때마다 유지보수나 확장성면에서 가치가 있게 작성되었는지 생각하고 검사하는 시간을 가짐
4. 프로그램 작성을 하다가 방향성을 잃을 때 주변 동료와 튜터님들께 여러 번 조언을 듣고 나에게 맞는 점을 골라 최선의 방향을 찾기 위해 노력함
5. 프로그램의 정상 작동 여부를 여러 번 확인하는 작업을 거쳐 기능끼리의 충돌이 없는지 확인함
[ Problem ] :
1. 에러가 발생했을 때 바로 기록하지 않아 캡쳐한 화면을 보고 어떤 에러인지 바로 알아내지 못함
2. 깃 허브 연결을 까먹음
3. 쿼리문에 대한 선행공부가 부족해 MySQL 워크벤치의 도움을 많이 받게 됨
[ Try ] :
1. 에러 발생 시 따라야 할 룰을 정해 단계별로 문제를 해결하는 습관 들이기
2. 프로젝트 시작 시 깃을 바로 연결하는 습관 들이기
3. 자바, 스프링, SQL 의 기초 문법을 탄탄하게 하고, 워크벤치같은 툴은 정말 필요할 때만 사용해 기본 기술을 응용할 수 있게 노력하기
4. 스스로 잡은 공부의 방향성을 계속 바꾸기보단 확신을 가지기 위해 노력하기
Opinion
이번 과제는 직전에 진행했던 JDBC 기반 일정관리 앱 만들기를 발전시켜 JPA를 사용해 일정관리 앱을 만드는 것이었다. JDBC를 사용할 땐 정말 스프링이 너무 어렵고 나를 백엔드와 멀어지게 했었는데 JPA는 이렇게 쉬워도 되나? 싶을 정도로 재밌었다.
JDBC는 성능 최적화와 SQL 제어가 중요한 경우에 적합하고, 객체지향적인 접근과 복잡한 객체 관계 매핑이 필요한 경우에 JPA가 적합하다고 하는 글을 본 적이 있었는데 가만히 생각해보니 JDBC가 어렵다고 포기하고 가면 나는 성능 최적화를 잘 못하는 개발자로 자라날 것이라는 오싹한 생각이 들었다. 그래서 여태 내가 했었던 과제들을 다시 한 번씩 보면서 현재 나의 상태를 다시 평가해보는 시간을 가졌다.
현재 나는 구멍이 숭숭난 상태이다. 부트캠프로 프로그래밍을 배우는 비전공자의 입장에서, 남들은 몇 년을 걸려 공부하는 걸 당장 4개월 남짓 되는 시간을 이용해 따라가려고 하니 당연히 구멍이 나는 것은 어쩔 수 없다고 생각했다. 낙담하기보단, 지금 내 상태를 알게 되어서 다행이고 구멍난 개념들을 메우면서 따라가는 것이 중요하다고 생각되었다. 그래서 전에 들었던 자바 기초 문법, 스프링 기초, SQL 기초 강의들을 다시 보면서 지식을 단단하게 채우고 있다.
사실 이번에 과제를 진행하면서 다른 동료분들의 도움을 많이 받게 되면서 코드를 여러 개 보게 되었는데 은연 중에 나도 모르게 내 코드와 다른 전공자 분의 코드를 동일 선상에 놓고 왜 나는 저만큼 하지 못할까 라는 비교를 하게 되었다. 그래서 낙담하고 있던 것을 팀원분께 공유드렸는데 따끔한 충고를 듣게 되었다. '전공자분들은 학교에서 4년, 적어도 2년을 컴퓨터의 하드웨어부터 소프트웨어까지 다 뜯어가면서 공부하는데 이제 막 프로그래밍을 1개월 공부한 분이 그런 분들이랑 비교하는 건 욕심이 과한거에요.' , 그렇구나. 욕심이 너무 과했었다. 그리고 비교 대상을 바꿔 1개월 전의 나와 비교를 했는데 처음 코드를 봤을 때 보이는 것은 화면이고 쓰여있는 것은 영어철자들이다.. 하던 것을 생각하니 스스로 많이 발전했다는 것을 알았다.
계속 남과 비교하게 되면 내 스스로의 상태를 객관적으로 평가할 수 없게된다. 겉보기엔 완벽한 코드를 작성할 수도 있겠지만 그건 결국 남의 것을 베낀 것일테고, 나만의 코드를 작성할 수 없게될 것이다.
이번 과제로 얻은 것이 정말 많다. 이제 내가 해야할 것은 얻은 것을 최대한 이용해먹고 다음 단계를 나아가기 위한 발판으로 삼는 것이다!