TIL(Today I Learned)

Day.4 미니 프로젝트 최종화.... 오류의 해결과 예외처리? 그리고 궁금증 해소

지팡구 2022. 11. 3. 21:37

이번 한 주도 어느덧 최종 Ending을 향해 달려가고 있다.

 

새로운 오류가 발생하고, 내가 생각한 대로 코드가 굴러가지 않으면 분노와 동시에 이 친구를 정복하겠다는 마음이 먼저 든다. 코드를 이해하는데 익숙하고 큰 어려움이 없지만 Python과 Js, CSS, HTML에 능하지 못해서 코드를 쓸 때, 시간이 조금 걸린다.

 

그 이유는 Java와 C언어에 찌들어 있어서 내가 생각한 코드를 python에서 지원을 안하거나, 호출 방식이 다르거나, 뭐 이런느낌이라 쉬운 기능이나 로직을 구성하는데도 시간이 오래걸렸다.

그리고 뭔가 IntelliJ와 Java에 익숙해서 오류가 생기더라도 어디 부분이 문제가 있는지 한 눈에 보이는데, 

Pycharm과 Python은 오류를 뱉어주긴하나 뭔가 에너지를 더 쓰게 하는 느낌??

 

오늘은 방명록 삭제 기능과 방명록 기입 시 예외처리에 대해서 고민을 많이 했고, 결과론적으로 구현을 했다.

 

삭제 부분에서는 계속 혼자 생각했는데, 어떻게하면 데이터를 받아오지? 어떻게 데이터를 넘겨줘야하지? 등 데이터와 관련된 생각들이 주를 이루었다.

그 이유는 기존에 Mysql이나 MariaDB 내가 주로 사용했던 DB나 System에서는 Pk값을 명확히 확인할 수 있었고, 그냥 익숙하니까 쑥쑥 머리에서 뽑아냈는데, Python은 뭔가 낮설어서 버벅거리거나 선언부, 호출부, 등 여러 생각들이 나를 방해했다.

이런식으로 데이터를 저장하니까 name을 받아서 삭제를 시켜야하나, comment를 받아서 삭제해야하나... 이러쿵 저러쿵 생각도 들었고, 그냥 내가 id값이라는 값을 만들어 버릴까? 라는 생각도 했다.

결국 내가 id 값을 그냥 만들어서 방명록을 작성할 때, 이 id값을 어떻게 줄 것이냐라는 생각을 했었고, 거의 무한대에 가까운? 보통 이 데이터를 임의의 난수를 부여할 때 많이 사용했었는데,  날짜를 이용해서 id값을 전달해버렸다.

 

data.now().toString() => data 객체의 시간을 문자열로 만들어서 그냥 db에 저장하고, 이 저장된 id를 가지고 데이터를 삭제시켰다. (다른 사람들은 어떤방식으로 했을지 궁금하다.)

< 해결완료 >


다음으로 방명록 기입에 대한 예외처리였다.

이 부분에 대해서도 매우 느낀점이 많았다...

SSUL을 풀자면 우리들의 코드를 합치는데 팀원들의 코드를 보았는데, 맙소사... 그냥 코드가 거의 똑같았다.. (나 역시 마찬가지였고)

어떻게 보면 당연한 현상이라고도 생각했고, 이 코드를 보자마자 50000가지 생각이 다 들었다...

 

"어쨋든 원초적으로 생각을 해보자"

데이터가 들어오면 -> 데이터를 확인해서 조건에 따라 예외 발생 -> 예외발생 여부에 따라 데이터 저장 혹은 롤백

 

(근데 여기서 음 그럼 try catch를 써야겠네 부터 시작해서 예외를 잡을때 사용할 수 있는 내가 알고있는 모든 수단들이 다 떠올랐다..)

 

그냥 if문을 사용해서 간단하게 만들어야겠다라고 확신이 들었고, 그에 맞춰서 조건문을 작성하는데... (띠로링...)

일명 controller단, 그리고 view 단 둘 다 뭔가의 조치가 필요했었다...

그래서 그냥 프론트 단에서도 조건문을 이용해 데이터를 저장하지않고 페이지를 반환해버렸고, 백단에서는 경고창을 반환해버렸다.  (오늘 이 부분에서 시간과 에너지를 많이 썼다)

 

한번더 느낀거지만 "코드를 짜는 능력과 생각하는 능력은 다르다" 라는 것을 뼈저리게 느끼는 시간이었다.

(뭔가 이번 프로젝트에서 구현해보고 싶은 기능들은 많았지만... 많은 에너지를 쏟기 싫었고, 너무 내 자신을 뽐내는거 같아 기본적인 것들만 진행했다...)

 

<해결완료>


<금일 최종 회고>

 

오늘 처음으로 팀원들과 git을 이용해 협업하는 과정을 겪으면서, 팀원분들이 잘 따라오실 수 있도록 계속 알려주고 있다.

팀원 분들은 이 것을 미안해 하시는데, 전혀 그렇게 생각 안하셨으면 좋겠다. 그 이유는 나 역시도 그랬던 적이 있었고, 그런 상황을 통해 성장했기 때문이다. 이제는 가르침을 받는 입장에서 알려주는 입장으로, 내가 알고 있는 지식이 정확한 것인지, 바른 것인지에 대해 한번 더 점검할 수 있기 때문에 나역시 성장 경험치를 먹기 때문이다.

 

평소에 익숙치 않은 부분을 공부하며 진행하다보니 시간을 많이 쓴다.

이해는 쉬우나 내 것으로 만드는 부분과 코드를 보고 이해해서 내 서비스에 적용할 수 있는지에 대한 능력도 중요하다.

 

이제 빠르게 TIL 작성하고, 내일 있을 프로젝트 발표 문서 준비를 해야겠다. ..

 

금일 요약 !

코드를 짜는 능력과 생각하는 능력은 많이 다르다 (-이 차이점을 극복하자-)

내배캠에 의존하려고 하지말고, 독단적인, +@인 것들을 준비하자("당연한 이치")

Html, CSs, JS, Python 그만하고싶다 (빨리 맛있는 자바랑 Spring 하고싶다.)