Spring Spring Controller의 Model 객체 Spring에서는 각 JSP영역 대신 Model에 어트리뷰트를 실어서 전달한다. @GetMapping("/choosinsu") public String choo(Model model, int age, String name) { model.addAttribute("attr1","ABC"); model.addAttribute("attr2", name + age); model.addAttribute("ABCD"); // 값을 꺼낼때 ${string} 으로 꺼낼 수 있음 return "choosinsu"; } addAttribute(key, value) 를 사용해서 jsp에 값을 전달할 수 있다. 전달받은 값은 JSP에서 변수처럼 사용할 수 있다. ..
Spring Spring Controller의 파라미터 자동 수집기능 URL에서 넘긴 파라미터 이름과 매개변수의 이름을 똑같이해서 받을 수 있다. // 요청 URL http://localhost:8080/chulsu?name=철수 @GetMapping("/chulsu") public String getChulsu(String name) { log.info("name : " + name); return "chulsu"; } 위와 같이 페이지에서 파라미터를 넘겨받을 때 파라미터 이름과 매개변수의 이름을 동일하게 할 경우 자동으로 값이 할당 된다. ( name = 철수 ) 넘어오는 데이터의 알맞은 형태의 VO를 사용한다면 VO객체를 매개변수로 받아서 사용할 수 있다. @Component public class..
Spring Spring Controller JSP의 복잡했던 절차들을 많이 생략한 방식으로 웹 서버 구현 가능 컨트롤러에서는 데이터를 attribute에 싣고 다음 페이지로 안내하는 작업만 하는 것이 바람직하다. 다양한 방식의 매개변수와 리턴 타입을 사용할 수 있다. GET/POST 등 Method별로 별도의 처리도 어노테이션으로 간편하게 처리 가능하다. 클래스 위에 @Controller어노테이션을 달아놓으면 스프링이 알아서 수집한다. @RequestMapping 사용자의 요청 URL과 해당 컨트롤러를 매핑시키는 어노테이션 클래스와 메서드 위에 사용할 수 있다. - value : 매핑할 URL을 설정한다 어노테이션 뒤에 아무런 속성을 정의하지 않으면 기본값이 된다. - method : 요청 방식을 구분..
Log4j - 자바에서 로그를 효율적으로 남기기 위한 라이브러리 - 디버그, 로깅등의 용도로 사용된다. Log4j의 구조 Logger 로그 메세지를 작성, Appender에게 전달한다. Appender 로그를 출력하는 위치 결정(콘솔, 파일, DB 등) Layout Appender로 로그 생성전에 메세지를 어떤 형식으로 기록할지 설정한다. ※ 주의 main과 test 안에 resources폴더 내부에 log4j.xml로 위의 설정을 변경할 수 있다. java소스가 test와 main인지 구별해서 설정해야 한다. Log4j 레벨 로그 레벨 설명 OFF 로그를 끈다. FATAL 치명적 에러 ERROR 에러 WARN 주의 INFO 일반 정보 DEBUG 디버깅 정보 TRACE 더 자세한 디버깅 정보 ALL 모든..
Lombok - 어노테이션만 사용하면 자바데이터 클래스 스타일의 객체로 만들어주는 라이브러리 Lombok 설치 Spring 프로젝트에서 Lombok을 사용하기 위해선 라이브러리와 pom.xml업데이트 둘 다 해야한다. 1. 라이브러리 다운 및 설치 https://projectlombok.org/download 위 홈페이지에서 버튼을 눌러 jar파일 다운로드를 한다. 다운이 완료 되었으면 lombok.jar를 더블클릭해서 실행한다. (더블클릭 안 될 경우 cmd에서 lombok.jar를 받은 폴더로 이동한 뒤 java -jar lombok.jar 명령어를 실행한다.) 실행하면 위와같은 창이 뜨는데 Specify location... 을 눌러서 이클립스 실행파일을 선택한 후 Install/Update를 하면..
JUnit5 Java8이상의 버전 필요 pom.xml 업데이트 1 2 3 4 5 6 7 8 9 10 11 12 org.junit.jupiter junit-jupiter-api 5.3.1 test org.junit.jupiter junit-jupiter-engine 5.0.1 test Colored by Color Scripter cs 위의 두개를 내에 추가 기존의 junit4에 해당하는건 지우지 않아도 된다. JUnit5 어노테이션 어노테이션 설명 @ExtendWith(SpringExtension.class) JUnit4의 @Runwith과 같은 기능을 한다. @ContextConfiguration는 그대로 사용하면 된다. @RepeatedTest(n) 테스트를 반복할 수 있게 해준다. 사용 방법 //J..
JUnit4 - 자바용 단위 테스트 API - 단위 테스트 : 하나의 기능이 올바르게 동장하는지 독립적으로 테스트하는 것 - Spring에 포함되어 있다. JUnit 관련 어노테이션 어노테이션 설명 @Test 이 어노테이션이 붙어있는 메소드를 단위 테스트로 인식하고 실행한다. 여러가지 옵션을 줄 수 있다. @Ignore 이 어노테이션을 붙인 테스트 메소드를 무시한다. (테스트의 주석 느낌) @Before 테스트 실행전에 초기화를 진행하는 어노테이션. 테스트 시작 전에 먼저 실행된다. @After 모든 테스트 종료 후 실행된다. @RunWith(SpringJUnit4ClassRunner.class) 테스트를 스프링 테스트로 실행하기 위한 설정 (pom.xml에서 spring-test를 추가해야 사용할 수 ..
Cannot find DTD 'file:///E:/kg-ac/java/springworkspace/Practice_SpringMVC/src/test/resources/log4j.dtd'. Create the DTD file or configure an XML catalog for this DTD. 위와같이 DTD파일을 확인하지 못한다는 에러가 떳을 때 2번째 라인의 코드를 아래와 같이 수정해주면 된다.
JAVASCRIPT / MAP map 이란 ? 반복문을 돌며 배열 안의 요소들을 새로운 배열로 리턴한다. (매핑한다.) 어떻게 매핑할 지 정의한 함수를 전달하면 된다. forEach와 다른점은 새로운 Array를 반환한다. 예제1 const numbers = [45, 1, 9, 100, 55, 22, -37]; const map_result = numbers.map(myMapFunction); // 변수 선언하면서 map(func) 호출 // 함수 정의 function myMapFunction(value, index, array) { return value + 10; // 현재 value + 10 을 리턴한다 // ex > [1, 2, 3] 인 배열을 전달받았다면 [11, 12, 13]인 // 새로운 배..
JAVASCRIPT / FILTER filter 란 ? 조건을 주고 해당 조건이 참인 요소만을 새로운 배열로 반환하는 메서드이다. 배열에서 원하는 조건의 데이터만 추출 하고 싶을 때 사용하는 메서드이다. forEach와는 다르고 map과는 같은 새로운 배열을 반환해준다. 예제 const numbers = [45, 1, 9, 100, 55, 22, -37]; const filter_result = numbers.filter((value)=> {return value > 40}); console.log(filter_result) // [45, 100, 55] numbers배열중에 40이 넘는 값만 새로운 배열로 생성하여 전달한다. 위의 코드는 아래처럼 간략하게 줄일 수 있다. const filter_resu..
JAVASCRIPT / FOREACH forEach() 란 ? Array 객체에서만 사용가능한 메서드로 배열의 요소들로 반복하여 작업을 수행한다. 배열의 값을 하나씩 순차적으로 해당 함수에 전달한다. 배열이 가진 모든 값으로 순차적으로 리턴값이 없는 함수를 처리한다. forEach의 파라미터 첫 번째 파라미터는 값이 도착한다. 두 번재 파라미터로는 인덱스가 도착 세 번째 파라미터로는 forEach중인 배열이 도착 예제1 1. numbers 배열 생성 2. forEach()에 함수를 전달하여 사용 3. 배열이 가진 값을 순차적으로 처리 const numbers = [45, 1, 9, 100, 55, 22, -37] //배열 생성 numbers.forEach(myFunction); // forEach()에 ..
JAVASCRIPT / BROWSER OBJECT MODEL BOM 웹 브라우저와 소통하기 위한 웹 브라우저 모델 자바 스크립트의 모든 객체, 함수, 변수들은 window객체의 멤버가 된다. window는 생략이 가능하다. ( window.alert() -> alert() ) BOM의 여러 객체들 window : 웹 브라우저의 최상위 객체 (생략가능) window.screen: 웹 브라우저가 알고 있는 모니터에 관한 정보 window.history: 웹 브라우저의 페이지 이동 내역을 담고 있는 객체 window.location: 현재 웹 브라우저가 보고 있는 위치(페이지)에 관한 객체 window.document: DOM. html 코드 전체의 내용을 담고 있는 객체 window size console...