20201229-TIL

나영원·2020년 12월 30일
0

T.I.L.

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

오늘 공부할 내용

  • 오전 복습
  • 오후 수업
  • 저녁 수업
  • TiL 정리 및 Git & 블로그 업데이트

오늘 공부한 것 & 배운 내용

어제 수업 질의

어제 저녁 수업이 끝나고 오늘 오전에 급하게 복습을 하고 오후 자료구조 수업을 듣고 저녁수업을 준비하느라 오전에 복습하면서 질문사항들을 정리해서 강사님께 보내놓고 오후수업 들은 이후에 답변해주신 내용들을 정리하는 시간을 가졌다

  • 웹페이지 테스트를 MocMvc와 http파일을 활용한 방법 모두 사용하나요?
    • 가장 정확한 테스트 방법은 브라우저에서 직접확인 하는 방법으로 QA가 브라우저 별로 모두 테스트를 진행한다. 하지만 시간이 오래걸리고 개발과정에서 Veiw가 늦게 나오기 때문에 브라우저에서 확인하진 않고 curl, httpie, swagger 과 같은 테스트틀을 활용해서 테스트를 한다
    • .http는 ide에서 좀더 쉽게 테스트할수 있게 해주는 파일이고 postman이라는 프로그램도 활용하게 된다
    • 정리하자면 RestApi는 MocMVC로 기본적인 테스트를 하고 중요한 것들은 직접 호출해서 테스트하고 WebPage는 mocMVC 테스트를 하고 변도로 브라우저 테스트도 진행하게 된다
    • => 내가 webPage테스트와 api 테스트를 혼용해서 생각하고 있었구나 라는 것을 발견했다.
  • mocMVc에서 테스트할때 서버를 띄우지 않고 테스트가 가능한 이유가 무엇인가요?
    • spring-boot-test에서 서버를 띄운것처럼 request와 response를 다 생성해서 처리해 준다. 그러나 정확한 테스트는 아니기 때문에 실제 호출테스트를 별도로 진행하게 된다
  • dto클래스는 사용자가 입력한 값을 검증하기 위한 클래스가 맞나요?
    • 검증을 위해 만든 클래스라기 보다는 dto를 만들면 다른 로직 영향 없이 값을 검증할 수 있다는 장점이 있다는 얘기였다.
    • dto는 data tranfer object라고 해서 파라미터로 Strting name, int age , String email을 받으면 명시적이지 않아서 값을 전달하기 위해 한번더 오브젝트로 묶는 개념이다
    • Controller에서 dto를 사용하는 이유는 json 객체로의 변환을 위해서 사용하는 것이다.
    • => 이부분은 이해가 되면서도 좀 어려운 개념이긴한데 그래도 평소에 사용하고 있는데 잘모르고 있던 부분인 것 같다
  • dto 에서 검증을 하면 예외가 발생하면 어떻게 처리되는건지?
    • 예외가 발생하는게 맞고 vaidator의 위치마다 예외가 조금 씩다르기 때문에 각각에 맞추어서 처리하게 된다
  • 기존에는 get메핑을 통해 다른 페이지로 넘어가는 경우가 많았는데 이번엔 json파일을 넘어가게 실습했는데 이후에 어떻게 처리하게 되는지?
    • 기존에는 서버사이드 렌더링으로 페이지 자체를 전부 서버에서 만들어 내려주었지만 최근에는 클라이언트 사이드 렌더링을 사용하게 된다. 그럴 경우 view에 필요한 요소들은 다 view파일 에서 관리하게 되고 그 파일에 필요한 데이터만 beackend resapi로 호출하게 된다
    • => 아직 프론트와 협업되는 부분들이 파악되지 않아서 더이렇게 느끼는것 같다. 결국은 나는 데이터만 넘겨주는 역할만 잘하면 되는 것 같다.
      • 그럼 프론트에서 내가 만든 api를 가지고 데이터를 요청해서 사용하는 것 같다
  • 프로젝트에 개발 순서가 보통 컨트롤러를 만들고 다른걸 개발하는지 궁금합니다
    • 프론트엔드와 동시에 시작하기 위해서는 api주소와 parameter 그리고 return 되는 reponse의 json의 형식을 결정하고 시작하게 된다
      • 그후 해당 규격(인터페이스)만 정의하고 나서 규격에 맞게 개발을 진행하게 되고 그이후 순서는 개인의 취향에 따라 달라질수 있다
    • 실무에서는 VIew가 기획가 동시에 진행되기 때문에 오래걸리는 경우가 많기때문에 user나 payment같은 DB를 먼저 설계하고 Entity -> Repository-> Controller -> Service 형식으로 만드는 경우가 많다

내일 공부할 내용

  • 오전 복습
  • 오후 수업
  • 저녁 수업
  • TiL 정리 및 Git & 블로그 업데이트
profile
배우는 개발 일기
post-custom-banner

0개의 댓글