본문 바로가기

Record18

프로젝트E. 예약 : 한줄평 관련 Web API 만들기 이번 프로젝트는 두번에 걸쳐 통과를 했다. 두번 돈 안내려 했는데 또 내게되어서 아쉽다.. 예약했던 상품에 댓글 달기, 댓글 목록 보기(기존 내용 수정), 이미지 다운로드(업로드) Web API를 구현해야 한다. Comment1 이미지는 프로젝트 내부 디렉토리가 아닌 외부에 저자하는 것이 좋습니다. 이유는 지난 코드리뷰에서 말씀드린 것과 같이 war 빌드시 내부 디렉토리에 파일을 write할 수 없으며, 추가적으로 수정사항 적용시 변경된 클래스만 아닌 전체 프로젝트를 배포하기 때문에 방식에 따라 이전 변경되기전 프로젝트 디렉토리를 삭제후 배포하게 되면 프로젝트 내부에 write한 이미지 파일 또한 삭제할 수도 있습니다. final String ROOT_PATH = request.getSession().g.. 2021. 11. 22.
프로젝트D. Spring Security를 이용한 로그인 및 예약 관련 Web API 만들기 인턴 생활을 시작하게 되면서 시간날때 조금씩 진행하느라 생각보다 오래 걸린 프로젝트였다. 이번 프로젝트에서는 예약하기, 예약 목록 보기, 예약 취소 기능을 구현해야 한다. 또한 예약을 하기 위해서는 로그인 기능을 구현해야하고 로그인을 하지 않은 사용자는 로그인할 수 없다. Commnet1 단일 책임 원칙에 맞게 작성했는지 고민해보시기 바랍니다. 단일 책임 원칙이란 모든 클래스는 하나의 책임만을 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다는 것을 의미한다. 예약에 대한 댓글 기능을 구현하면서 해당 메소드를 예약 컨트롤러에 위치시켰다. 이는 예약에 관한 책임을 갖고 있지만 댓글에 대한 책임도 갖고 있다. 정답은 없지만 예약 컨트롤러에 위치시키는 것보다 다른 컨트롤러를 만들어 위치시키는게 좋을 것이다... 2021. 10. 19.
프로젝트C. 예약 : 메인, 상세보기 관련 Web API 만들기 이번 프로젝트는 구현해야할 부분도 많고 난이도도 좀 있어서 처음부터 성공하지 못할 것이라고 생각했는데 다행히 한번에 통과할 수 있었다. 이번 프로젝트를 시작으로 마지막 프로젝트까지 인터넷 예약 관리 시스템을 만들게 된다. 실제 네이버에서 운영하는 예약 시스템과 유사한 서비스이다. 백엔드 파트이기 때문에 Web API를 개발하면 된다. 이번 파트에서는 예약 메인 페이지에서 사용하는 Web API와 예약 메인 페이지에서 전시 상품을 클릭했을 때 보여지는 상세페이지와 관련된 Web API를 개발한다. Comment1 인터페이스는 데이터를 저장할 수 없기 때문에 데이터를 저장할 인스턴스 또는 정적 필드를 선언할 수 없습니다. 대신 상수 필드만 선언할 수 있습니다. 따라서, 인터페이스에 선언된 필드는 모두 상수이.. 2021. 8. 18.
[boostcourse] 4. 웹 앱 개발 예약 서비스 생각해보기 #1 ~ #4 #1 Spring MVC 1) Front Controller는 모든 요청을 받아 들여 공통적인 작업을 처리해 줍니다. 이를 통해 얻을 수 있는 장점엔 어떤 것이 있을 수 있을 까요? Front Controller Pattern - 모든 Resource 요청을 처리해주는 하나의 컨트롤러를 두는 패턴이다. - MVC 패턴과 함께 사용하는 패턴이다. Front Controller Pattern의 장점 - 모든 Request를 하나의 컨트롤러를 통해 한 곳에서 작업을 수행할 수 있다. - 추적(Tracking)이나 보안(Security)를 적용할 때 하나의 컨트롤러에서 하기 때문에 편하다. - 파일 구조가 바뀌어도 URL을 유지할 수 있다. 즉 DispatcherServlet(Front Controller)이 .. 2021. 8. 2.
[boostcourse] 3. 웹 앱 개발 예약 서비스 생각해보기 #2 ~ #3 #2 Spring Test 1) TDD가 무엇인지 알아보세요. TDD(TestDrivenDevelopment)는 코드작성보다 테스트 작성을 먼저하고, 이 테스트를 통과하기 위한 코드를 작성하는 과정을 반복하면서 코드가 제대로 동작하는지에 대한 피드백을 적극적으로 받아들이는 개발 방법이다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며 애자일 방법론 중 하나인 eXtreamProgramming의 Test-First개념에 기반을 둔 단순한 설계를 중요시한다. TDD의 대표적인 Java 단위 테스트 프레임워크 'JUnit' 2) 스프링 프레임워크를 사용하면 객체의 생성을 컨테이너가 한다고 했습니다. 그렇다면 컨테이너가 관리하는 객체(Bean)은 어떻게 테스트를 수행하면 될까요? 테스트 클래스에 @RunW.. 2021. 8. 1.