20201021-TIL

나영원·2020년 10월 21일
1

T.I.L.

목록 보기
57/145
post-custom-banner

오늘 공부할 내용

  • 프로젝트 진행
  • 프로젝트 검토 받기
  • DB퀴즈
  • TiL 정리 및 블로그 업데이트

오늘 공부한 것 & 배운 내용

  • 출근길 강의

    • 스프링 입문 강의
      • MVC모델을 이용하여 컨트롤러를 통해 입력받는 예재를 시작했는데 HTML과 HTTP와 java가 연결되는 부분이 낯설어서 몇번은 돌려보거나 다른자료들 찾아보면서 공부하는게 좋을 것 같다
      • 그래도 간단한 예제이지만 조금이라도 이런 내용들을 보고 수업준비할 수 있어서 다행이다
      • 주말에 처음부터 완강을 목표로해서 쭉 실습해보는것을 목표로 잡았다
  • 준비시간

    • 5분 명상
      • 공부시작전 조금이나마 피곤함 가시게 하려고 했는데 생각보다 도움되는 것 같다
      • 중간중간 쉬는시간에 할 수있으면 도움 될 것 같다
    • 간단하게 어제 TIL 읽어보고 수정한뒤 블로그에 다시 업로드 했다
      • 요즘 이런 루틴으로 가고 있었는데 당일날 생각하지 못한 부분이나 수정해야될 부분 수정할 수 있어서 좋은 방법인 것 같다 -> 굿!
    • 프로젝트 둘러보기
      • 내가 한것들 위주로 프로젝트를 둘러보며 의문가는 점들을 정리했다
      • 질문사항
        • inputParams를 멤버 변수로 선언했는데 초기화는 로컬해서 해주는게 좋은건지 아니면 밖에서해주는게 좋을지
          아니면 별상관이 없는지
          • 상관없는 문제이지만 리스트로 이렇게 구현하는게 좋은 방법은 아닐 수 있다
        • InputStatementMenu를 어떤 단위까지 ExtractMethod하는게 좋을지?
          • 아직 더 리팩토링할게 보이는데 기능 단위로 하면 좋다
        • isCUrrentDate에서 어떻게 list가 동작하는지?
          • 잘모르겠다 하지만 좋은 구현은 아니다
        • appStatus를 싱글톤으로 구성한게 적적잘하는지?
          • 싱글톤은 적절했지만 거기에 que를넣는거는 적절하지 못했다..
        • 테스트는 public 메소드만 가능한지
          • 맞고 연결된 private은 public을 테스트하면서 자연스럽게 된다
  • 아침 프로젝트 진행

    • 프로젝트 리뷰
      • 위에 정리해놓은 질문사항에 대해 질문하였고 답변을 듣고 할일들을 정리하였다
      • 이후에 서비스에 대해 구상을 하였고 나는 ModelSevice를 구현하기로 하였다
        • 이야기를 하였는데도 구체적으로 어떤걸 해야될지 잘모르겠다.. 조금더 혼자 정리해보고 다시한번 얘기해보는걸로 해야될 것 같다
      • Date의 경우 String이 아닌 LocalDate로 하기로 하였고 String 을 LocalDate로 parse하는 경우에 validation을 체크하기로 하였다
  • 오후 트러블슈팅 및 프로젝트 진행

    • 강사님께 여태까지 짜놓은 코드를 피드백받았다

    • 피드백 내용

      • MenuMethos 클래스 어색하니 명명해야한다

        • MenuController로 명명하였다
      • 변수명 스태틱파이널은 대문자로 변경

      • SelectMenu 메소드 if else문으로 작성되어 있는것 스위치케이스 문으로 변경

      • TransactionOperate() 메소드명은 동사형으로 될 수있게 opeate를 앞으로 넣기

        • 메서드 내용 null값처리 할 수있게 수정
      • ParseLocalDate()메서드 메뉴랑 관계없는 메소드이니 꼭 필요한지 체크

      • InputStatemnet 메소드

        • while문안에 리스트가 들어가있는게 어색하니 boolean형태로 변경
        • if문을 기능 단위로 나누어서 예외처리와 본기능을 분리해 놓아야 가독성이 올라간다
      • equals에 ignorecase안되어있는것 변경

      • CehckInputStatement()에 if문을 일관되게 작성

      • InputStatementVlaid

        • switchcase로 바꾸고 마지막 retrun값 false가 아닌 true로 바꾸기
      • MenuHandler 클래스도 멤버 변수가 없기 때문에 스태틱 클래스가 된다

        • 현재 MenuController와 기능 구분이 잘 되지 않는데
      • Vaildator에 입력받는 문자의 길이를 20으로 해놓은것을 DB와 맞춰주면 버그가 생길 확률이 줄어들것이다

    • 적용점

      • 대부분 피드백 해주신대로 적용했고 특히 InputStatement에 if문을 기능단위로 분리하면서 큰 조건문을 어떻게 구성해야되는지에 대해서 많이 배운 것 같다 -> 굿

      • 지적 해주신 대로 구조가 분리되지 않다고 느껴 Controller와 Menu를 분리하여 restructuring을 하기로 했다

        • 다시 처음으로 돌아가는 느낌이 드는데 어떻게하면 깔끔하게 할 수 있을지 고민해봐야겠다
  • 저녁 시간

    • DB quiz1 풀이
      • 1시간 정도 풀고 모르는건 내비두려고 했는데 풀다보니 몇문제 안남아서 1시간정도해서 9문제 모두 해결했다
        • 처음 써보는 문법이라 기본적인 실수 때문에 시간이 오래걸렸다
        • 한문제는 배우지 않은 CONCAT 예약어를 사용하는 것이었는데 검색을 통해 찾아서 풀었다 -> 굿!
    • 프로젝트 진행
      • 막상 리팩토링을 하려고 하니 막막해서 어떻게 시작해야할지 모르겠었다
        • 일단 필요한 클래스부터 생성하고 컨트롤러가 어떤역할해야하는지 모르겠어서 검색을 통해 정보를 얻었다
        • 컨트롤러는 사용자와 직접 맞닫는 부분이라고 하니 그 개념을 가지고 한번 구현해보아야겠다
      • menu 하위 패키지를 만들어 인터페이스와 클래스를 생성하였다
        • 인터페이스의 내용을 어떻게 채울지 모르겠어서 천천히 인터페이스부터 채우고나서 내용구현을 하기로했다
      • MenuController 클래스에 selectMenu메서드를 작성하였다
        • switcase문을 통해 menu를 바꿔 끼면서 callmenu하도록 해보고 싶다
        • 현재는 숫자로 switch하지만 나중엔 다른 걸로 바꾸고싶다

내일 공부할 내용

  • 프로젝트 진행
  • DB퀴즈
  • TiL 정리 및 블로그 업데이트
profile
배우는 개발 일기
post-custom-banner

0개의 댓글