1. 문제 #define _CRT_SECURE_NO_WARNINGS #include int main() { unsigned A, B, C; scanf("%u", &A); scanf("%u", &B); scanf("%u", &C); printf("%u", A + B + C); return 0; } 2. 해결 방법 * 조건 : 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다. 10^12 = 1,000,000,000,000으로 자료형 unsigned로 값의 범위를 충족할 수 없다. 따라서 정수 자료형 중에 long long int를 사용해아 하고 형식 지정자는 lld이다. 수정 코드에서는 unsigned long long int 사용함. 3. 수정 후 코드 #..
1. VS Code setting 단축키 ctrl + , 2. tab size Tab Size 2로 바꾸기(대체로 2 많이 사용함.) 3. Word Wrap wordwrap 정의 : 텍스트의 행을 자동적으로 개행하여 문서의 페이지 여백으로 빠져나오지 않도록 하는 워드프로세싱 프로그램의 기능. 4. plugin 설치플러그인 설치 플러그인 설명 비고 Korean Language Pack 에디터 한글화 Material Icon Theme 탐색기 아이콘 테마 One Dark Pro 에디터 색 테마 Live Server 새로고침 없이 코딩 중인 웹 업데이트 indent-rainbow 들여쓰기 색으로 구분 Bracket Pair Colorizer 여는 괄호와 닫는 괄호 짝 지어줌 내장 기능이 됨 Auto Renam..
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가 출력되도록 바꾼다..