글또
-
-
qna 피드백 (미션-6)글또 2021. 3. 28. 15:18
이번 미션은 페이징 미션이다. 페이징은 굳이 class까지 만들어해주고 싶은 생각이 없어서 handle bars의 helper를 이용해 구현을 했다. 또 답변 삭제, 질문 등록 시 더블 클릭이 되면 중복 요청이 나가서 그 부분을 수정을 진행했다. 이번 피드백은 dion이 담당해 주셨다. 1 페이지 노출은 페이지를 1부터 시작하고 싶어서 만들다 발생한 버그였다. 먹통 버그는 더블클릭 버그를 해결하다가 변수명을 잘못 작성해 일어난 버그였다. community 버전에서 js는 다루기가 쉽지 않다. 밑의 페이지 블록을 1부터 시작하기 위해 생겨난 if문이었다. 해결은 따로 helper를 만들어 사용하도록 했다. 이 부분은 생각지 않았었다. 확실히 dion이 말씀하신 설계가 더 좋은 것 같다. 미래의 나를 위해서..
-
qna 피드백 (미션-5)글또 2021. 3. 28. 14:56
이번 미션은 ajax를 사용하는 미션이었다. 근데 ajax보단 dto 쪽을 더 많이 만진 것 같다. 피드백은 wheejuni님이 담당해 주셨다. 처음의 설계는 service에서 dto를 반환하는 것이 아닌 controller에서 dto로 변환시키는 것이었다. 이로 인해서 controller의 역할은 조금 모호해졌다고 생각했다, 후에는 애초에 service에서부터 dto를 반환해 주는 쪽으로 변경을 하게 되었다. Entity 내부에서 dto로 변환해 주면 메서드 체이닝이 이쁘게 된다. 그렇게 하고 싶어서 내부에 로직을 추가했는데, 아뿔싸 단일 책임원칙을 기억하는가? 나는 그 부분을 놓치고 있었던 것 같다. 과연 returnDto가 비즈니스 로직일까? 생각해보니 절대 아닌 것 같다. dto내부에 클래스 메서..
-
qna 피드백 (미션-4)글또 2021. 3. 18. 23:34
이번에는 wheejuni가 피드백을 달아주셨다. 하나하나 맛봐보자. 나의 질문사항이었다. 내 이전의 생각은 예외를 다 다뤄줘야 한다는 생각이 있었다. 그래서 내부에 검증 메서드가 항상 따라다녔고, 예외상황에 할 행동이 같이 있었다. 근데 제인의 ExceptionHandler를 보고 나도 도입을 해보자, 하고 도입해 봤다. 확실히 코드가 깔끔해졌다. 예로 login시에 다른 password가 오면 일반적인 로직으로 보지 않고 예외를 터트리면 뭐 거기서 끝이다. 따로 검증이나 예외시 행동을 처리하지 않고 ExceptionHandler에서 해당 예외를 잡아서 처리해 주면 끝. 본인 기준으로 너무 아름다운 코드들로 변해갔다. 근데 작성을 하면서 한 가지 걸린 점은 너무 exception을 남발한다는 것이다. 예..
-
qna 피드백 (미션-3)글또 2021. 3. 13. 22:05
미션 3을 진행하며 받은 피드백을 기록해 보자. 꼼꼼히 봐주시는 디온이 전담되었다. 처음에 33개의 피드백을 보고 아찔해졌지만 많은 부분을 신경 쓰지 않은 자신을 돌아보기도 했다. final은 나에겐 익숙지 않았다. 말하자면 굳이? 이런 생각이 강했다. 이미 private로 설정되어있고 내가 굳이 setter를 설정해 주지 않으면 바뀌지 않을 거라고 생각하고 있었다. 내 생각을 정리하고 댓글을 달려고 공부를 해보니 결론은 final을 다는 게 좋다는 거다. 다른 누군가나 미래의 내가 변경하지 말라고 알려 줄 수 있고, 확실치는 않지만 리플렉션으로 들어와도 막을 수 있을 거 같다. 어노테이션을 타고 들어가 보니 기본값은 String [] {}였다. 배열로 받는 게 신기했다. 내부적으로 / 을 기준으로 잘라..
-
-
피드백 받은 부분( 개발할 때 고려할 것)글또 2021. 2. 16. 23:31
피드백 List sample = ArrayList~ 형태로 작성해 자료구조의 다형성을 활용하자 문자는 String보다는 char를 사용 final을 사용해 변화에 대응하자 상수를 적극 활용하자. 개발자의 의도를 쉽게 알 수 있다. 상수를 네이밍 할 때는 DataType을 곁들이지 않는다. -> PieceColor (X) Color (O) 클래스와 메소드는 하나의 목적만 가지자. solid원칙을 되새기자. 예외상황을 검증하자. 사용자는 개발자의 상상을 뛰어넘는 예외를 발생시킨다. Scanner는 close를 해주자. gc에 대해 공부하자 enum에서 필드 접근보다는 getter를 사용하자 -> Color.White.repretention (X) Color.White.getRepretention() (O) ..
-