이 강의 얼리버드? 아무튼 처음에 오픈 할인해서 251,000원 주고 샀다. 강의 자체는 좋다. 자바의 정석이 잘 맞기도 하고 무료로 들어서 도움이 되고자 스프링 강의도 바로 샀다. 그런데 기분 나쁜게 후기를 보면 이 가격보다 한 10만원 싸게 산사람도 있다,,, 이럴거면 왜 오픈 할인해서 팔았는지 모르겠다. 오픈할 때 가격 오른다고 협박해놓고 싸게 파는게 말이 되는가? 핸드폰도 아니고 계속이 떨어지고 지금은 정가가 30만원이다. 물론 강의 자체는 좋다. 돈이 그렇게 아깝지는 않다. 그런데 스프링의 부트 사려고 하니까 좀 고민된다. 왜? 가격 통수맞을까봐,, 지금 글 쓰고 있는 시점도 협박한다 가격오른다고, 무슨 헬스장 보는거 같다. 회원님 내년에면 가격 오르세요~ 이러고서 내년가면 새해 할인 이벤트해서..
Maven - Update Project 후에 Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer 에러가 사라지질 않는다. maven-war-plugin 3.2.2 위를 넣으라는데 넣는 위치는 안에 넣어야 한다. plugin 모여있는 곳에 넣어야 함.
1. 변경에 유리한 코드(1) - 다형성, factory method SportsCar에서 Truck로 변경하면 2번 고쳐써야 하지만 다형성에 의해 조상 타입의 참조변수로 바꾸면 변경 포인트가 1개로 줄어든다. 왼쪽 코드를 오른쪽으로 바꾸면 static Car getCar()는 기능을 제공하고 Car car = getCar();는 이 기능을 사용한다. 기능 제공 코드는 1개이지만 사용 코드는 n개가 될 수 있다. 왼쪽을 보면 사용하는 코드를 모두 바꿔야 하지만 오른쪽은 사용하는 코드는 바꾸지 않아도 된다. 사용하는 코드를 바꾸는게 아니라 기능을 제공하는 코드에서 SportsCar()를 Truck()으로 바꾸면 변경 포인트가 줄어든다. Properties는 config.txt파일을 읽어서 객체를 생성한다...
1. 프로젝트 열기 File - Open에서 ch2_final 연다. 2. 단축키 Help - Keyboard Shortcuts PDF를 클릭하면 PDF파일로 단축키가 나온다. File - Settings에서 keympa을 입력하면 단축키를 수정할 수 있다. shift 두 번 클릭하면 검색 가능하다. 3. Edit 어느 상태에서 ESC키 입력하면 Ediotr 창으로 Focus 이동한다. 소스 파일에 space로 미리보기 사용할 수 있다. 4. switcher 다른 창이나 열려있는 파일로 이동하는 단축키는 ctrl+tab이다. ctrl을 누른 채로 tab또는 shift+tab(반대 방향)으로 이동할 수 있다. 5. Recent Files ctrl+E는 최근 수정한 Recent File과 Location을 ..
1. WebDataBinder URL 요청을 위와 같이 했을 때 Query String에 있는 year, month, day는 parameter Map 형태로 데이터가 담긴다. Controller에서 Mydate 매개 변수 타입으로 받으면 오른쪽 객체가 만들어진다. 요청할 때 넘어온 year, month, day를 binding할 때 중간에 WebDataBinde가 타입 변환, 데이터 검증 두 가지 역할을 한다. parameter Map 자료형은 String이고 Mydate 자료형은 int이므로 타입이 불일치 해서 형변환을 해야한다. 타입을 변환하고 결과는 BindingResult에 담고 에러가 발생하면 같이 저장한다. month는 1~12값을 가져야해서 타입을 변환한 다음에 데이터 검증을 한다. 문제가..
1. DispatcherServlet이란? Controller의 공통 부분인 입력을 따로 빼낸 것이 DispatcherServlet이다. DispatcherServlet은 전처리이다. 각 서블릿이 공통적으로 처리해야 할 일을 해주는 것이 전처리라 생각하자. 2. Spring MVC의 요청 처리 과정 DispatcherServlet이 요청을 받고 Controller에게 요청의 결과로 view 이름을 받고, 이에 해당하는 jsp를 찾아 응답을 해주는 것이 MVC 요청 처리 과정이다. 하지만 중간에 생략된 것이 있다. HandlerMapping에 Key는 URL, Value는 메서드 형태로 mapping되어 있다. 요청으로 "ch2/register/add"가 들어오면 HandlerMapping이 URL에 해당..
실습 코드 : https://github.com/castello/spring_basic/blob/main/ch2/error.jsp error.jsp, ExceptionController를 만든다. ExceptionController는 예외를 일부러 발생시킨다. com.fastcampus.ch2.ExceptionController.main(ExceptionController.java:10) 이렇게 예외가 발생했는데 처리를 안하면 톰캣이 500 error를 발생한다. Try/catch Block을 이용해서 예외처리를 해준다. 예외처리를 하니 404 error로 바뀐다. 반환 타입이 void이기 때문에 view를 mapping된 ex.jsp로 찾는다. 반환 타입을 수정하고 error.jsp가 출력되도록 바꾼다..