본문 바로가기

📔개발자 일기 | | TIL57

[20220306] 개발자 일기 & TIL 가면 갈수록 그 회사의 코드가 문제를 일으킨다. 계속해서 '그 회사'라고 할 수 없으니 앞으로 클라이언트 S라고 하겠다.(Spaghetti code에서 따옴) 클라이언트 S의 코드는 고의로 유지보수가 어려우라고 짰다고 볼 수밖에 없을 정도로 악랄하다. 스프링 부트 프로젝트의 controller에서 repository를 이용해 필요한 데이터를 담은 객체에 필요한 데이터만 getter와 setter로 접근하는 것이 아니라, 일단 controller에서 repository를 이용해서 가격 변수를 모두 꺼낸다. 그리고 요청이 들어오면 if문을 통과하면서 필요한 변수를 예약 정보를 위한 다른 DTO에 넣어준다. 문제는 if문 분기에 해당하는 변수만 넣어준다는 말이다. 모든 가격 변수를 쓰지도 않을 거면서 일단 변.. 2022. 3. 6.
[20220303] 개발자 일기 지난번에 스파게티 코드(?)라고 욕했던 고객사에서 가격 로직이 잘못되었다며 수정 요청이 들어왔었다. 다른 웹사이트 구축 업무 때문에 미뤄 놨었는데, 로직을 다시 보면서 어떻게 하면 코드를 이렇게 작성할 수 있는가 새삼스럽게 느꼈다. 로직상 사용되지 않는 변수 선언해두기, 요소 하나짜리 리스트 for문 돌리기 등 이해할 수 없는 코드들이 난무했다. 다른 선임 개발자 분에게도 코드 내용을 공유했더니 내 생각과 같았다. 보안적으로도 문제가 있어서 일단 이번 오류는 해결하되 다음부터는 조금 문제를 제기해야 할 것 같다. 일단 오늘은 해야 할게 좀 많은 거 같아서 아쉽지만 TIL은 내일로 미뤄야 할 것 같다. 2022. 3. 3.
[20220302] 개발자 일기 & TIL 휴일 전까지 해두었던 데이터 저장 기능을 동작해본 결과 저장이 잘 되었다. 이제는 연결된 상품 정보들이 여러 개일 경우에도 동작하도록 만들어야 했다. 저장 기능 자체는 쉬웠지만, 뷰에서 JS가 변화하도록 코드를 짜는 것이 골치 아팠다. 추가 버튼을 누르면 입력 폼이 추가되고, 삭제 버튼을 누르면 해당 폼만 삭제된 후 다음 폼들이 있으면 그 뒤의 폼들의 인덱스들은 하나씩 줄도록 만드는 것이었다. 다수의 폼들이 id와 name으로 구분되어 있다 보니 id와 name을 추출하고 인덱스를 변경하여 다시 합쳐주는 과정이 여러 번 반복되다 보니 번거로웠다. 너무 복잡하다 보니 이렇게 하는 것이 맞는가 하는 생각도 들었다. 추후에 다시 리뷰하면서 좋은 방법이었는지 탐구해보도록 하자. jQuery의 .attr()과 ... 2022. 3. 2.
[20220228] 개발자 일기 & TIL 2월이 끝나버렸다. 설 연휴가 있었고 28일밖에 되지 않기도 하지만, 뭔가 한 것도 없는데 시간이 매우 빠르게 지나간 것 같다. 회사에서 1개월을 보내면서 본격적으로 일을 진행하고는 있지만 안 해본 게 너무 많은 것 같다. 특히, 오늘은 마이바티스로 DB를 연결하는 작업을 했다. 단순히 insert하는 것은 꽤 쉽게 성공했다. 그러나 오후에는 달랐다. 주문 정보 테이블과 주문 상세 테이블이 분리되어 있는데, 한 화면에서 한 주문 정보와 여러 주문 상세를 가져오는 것을 구현하는 데서 막혔다. 기존 CMS에 구현된 부분을 참고해보았더니 input 태그에 name을 'article[0]'과 같이 인덱스를 주고 있는 것을 발견하였다. 커맨드 객체에서 변수를 리스트로 선언해놓고 뷰에서는 인덱스가 있는 이름으로 설.. 2022. 2. 28.
728x90