오늘 공부할 내용은 함수형 인터페이스입니다. 자바에서 기본적으로 제공하는 라이브러리인 Function interface에 대해 알아보도록 하겠습니다. docs.oracle.com/javase/8/docs/api/java/util/function/Function.html Function (Java Platform SE 8 ) docs.oracle.com java.util.function 로 제공되는 인터페이스이며, import 하여 사용합니다. Function T - 함수에 대한 입력 유형이며 R - 함수 결과의 유형입니다. 함수형 인터페이스이므로 람다식 또는 메서드 참조에 대한 할당 대상으로 사용 가능하다고 합니다. 이 함수형 인터페이스에는 4개의 메소드가 존재합니다. 1개의 추상 메소드 apply()와..
public interface Human{ void hName(); void hAge(); } hName()과 hAge()라는 추상메소드를 두개를 가지고 있는 Human 인터페이스가 있습니다. public class TestHuman implements Human { @Override public void hName(){ System.out.println("Kim"); }; } 그 interface를 상속하는 class TestHuman이 있습니다. 여기서 이 class는 에러가 납니다. 그 이유는 추상메소드 두개를 모두 override 하지 않았기 때문입니다. 여기서 override를 하지않아도 에러가 나지않으며 interface를 상속받은 클래스들이 모두 기본적으로 사용할 수 있도록 하는 것을 기본 ..
indexOf() - 특정 문자나 문자열에서 해당하는 문자의 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다. indexOf(String s) indexOf(int i) indexOf(String s, int startindex) indexOf(int i, int startindex) lastIndexOf() - 특정 문자나 문자열에서 해당하는 문자를 뒤에서 부터 찾아 인덱스 값을 반환하고 찾지 못했을 경우 '-1'을 반환하는 메소드 입니다. lastIndexOf(String s) lastIndexOf(int i) lastIndexOf(String s, int startindex) lastIndexOf(int i, int startindex) indexOf() 예제를 먼저보면 c..
charAt은 자바에 문자열에 index값을 통해 문자를 읽어오는 방법으로 String str = "코크입니다"; 라는 문자열이 있으면, str.charAt(0); // 코 str.charAt(1); // 크 str.charAt(2); // 입 str.charAt(3); // 니 str.charAt(4); // 다 이렇게 문자를 가져올 수 있습니다. 그럼 이 문자열을 숫자로 가져와 보겠습니다. String str = "12345"; str.charAt(0); 무엇이 출력될까요? 네 당연히 1이 출력이 됩니다. 그럼 이 1은 문자의 1 일까요? 아니면 숫자 1일까요? 네 이것도 당연히 문자 '1' 입니다. 그런데 우리는 이 문자 '1'을 숫자 1로 바꾸고 싶습니다. 그럼 어떻게 해야 할까요? 이 문자 '1..
함수형 인터페이스는 추상메소드가 1개 일 경우를 함수형 인터페이스라고 합니다. public interface Test { void go(); } 이렇게 Test라는 인터페이스에 추상메소드가 한개이니 이 인터페이스는 함수형 인터페이스 입니다. public interface Test { void go(); void gogo(); } 그럼 이렇게 추상 메소드가 두개 일 경우는 함수형 인터페이스 일까요??? 아닙니다. 추상메소드가 두개 이므로 이 인터페이스는 함수형 인터페이스가 아닙니다. * 대신 추상 메소드 말고 static 메소드와 default 메소드가 있습니다. 다른 형태를 포함하지만 추상 메소드가 한개인 인터페이스는 함수형 인터페이스 입니다. public interface Test { void go()..
사용자 웹 브라우저에 저장되는 데이터 요청이 발생 했을 때 웹 브라우저는 쿠키에 저장된 정보를 서버에 전달하게 된다. 만약 응답 결과로 쿠키 정보가 전달되면 웹 브라우저가 쿠키에 저장하게 된다. 쿠키는 사용자 브라우저에 저장되는 것이므로 브라우저가 전달 해 줄 때만 쿠키 정보를 사용 할 수 있다. Cookie 저장 서버측 코드로 쿠키에 데이터를 저장할 수 있는 방법은 없다. 브라우저로 보낼 응답 결과에 저장할 쿠키 정보를 담아 보내면 브라우저에 의해 쿠키가 저장된다. Spring MVC에서 쿠키 저장은 Servlet/JSP에서 사용하는 방법으로 처리한다. Cookie 읽어오기 쿠키 정보는 브라우저가 요청을 발생 시켰을 때 요청 정보에 같이 담아서 서버로 전달해 준다. Servlet/JSP 에서는 쿠키 정..
Bean을 정의 할 때 application scope 로 정의하면 서버가 가동될 때 자동으로 주입된다. 주입된 Bean은 주입만 이루어지는 것이므로 application 영역에 저장되지는 않는다. 서버가 가동 될 때 자동 주입 되는 것이므로 @Lazy를 설정하지 않아도 된다. Application Scope java 방식은 @ApplicationScope 를 사용 xml 방식은 bean을 정의 할 때 scope="application"으로 설정 @Configuration public class RootAppContext{ @Bean //@Bean("application2") @ApplicationScope public MemberDTO member() { return new MemberDTO(); } ..
서버가 가동될 때부터 서버가 종료되는 시점까지의 범위를 Application Scope라고 부릅니다. Application Scope 동안 사용할 수 있는 메모리 영역이 만들어지며 ServletContext라는 클래스 타입의 객체로 관리됩니다. ServletContext에 저장된 데이터나 객체는 서버가 종료되기 전까지 서버는 웹브라우저에 관계 없이 동일한 메모리 공간을 사용하게 된다. ServletContext HttpServletRequest 객체로 부터 추출이 가능하다. Controller 에서 주입 받을 수 있다. public String test(HttpServletRequest request){ ServletContext application = request.getServletContext()..