Java
-
자바 데이터 타입 Java 의 데이터 타입은 크게 두가지로 기본 타입과 참조 타입으로 분류된다. 기본 타입(Primitive Type) : byte, int, short, char, long, float, double, boolean 참조 타입(Reference Type) : 배열 타입, 문자열, 열거 타입, 클래스, 인터페이스 기본 타입(Primitive Type) 기본 타입으로 선언된 변수들은 실제 값이 변수에 저장된다. 기본 타입의 종류로는 byte, int, short, char, long, float, double, boolean 등이 있다. int obo = 20; char obo2 = "a"; 참조 타입(Reference Type) 참조 타입으로 선언된 변수들은 메모리의 주소를 값으로 갖는다..
Java 데이터 타입(기본 타입, 참조 타입)자바 데이터 타입 Java 의 데이터 타입은 크게 두가지로 기본 타입과 참조 타입으로 분류된다. 기본 타입(Primitive Type) : byte, int, short, char, long, float, double, boolean 참조 타입(Reference Type) : 배열 타입, 문자열, 열거 타입, 클래스, 인터페이스 기본 타입(Primitive Type) 기본 타입으로 선언된 변수들은 실제 값이 변수에 저장된다. 기본 타입의 종류로는 byte, int, short, char, long, float, double, boolean 등이 있다. int obo = 20; char obo2 = "a"; 참조 타입(Reference Type) 참조 타입으로 선언된 변수들은 메모리의 주소를 값으로 갖는다..
2024.02.14 -
HttpServletResponse 의 sendRedirect 메서드Java Servlet 에서 페이지 이동을 위해 redirect 하는 메서드이다.Http 프로토콜을 사용하여 정해진 규칙으로 서버가 클라이언트에게 특정 URL 로 이동하라고 요청을 보낸다. sendRedirect 메서드를 사용하게 되면 서버에서는 클라이언트에게 응답 상태값을 302 와 함께 이동할URL 정보를 Location 헤더값에 담아 전송한다.클라이언트 브라우저는 서버로부터 받은 상태값이 302 일 경우 Location 헤더 값으로 재요청을 보내어Redirect 하게 된다. 예시)개발환경 : Spring Boot, JSP 위처럼 jsp 페이지가 2개가 존재한다. test.jspasdfsadfasdfasd response.sendRe..
HttpServletResponse 의 sendRedirect() 와 RequestDispatcher 의 forward() 메서드 차이HttpServletResponse 의 sendRedirect 메서드Java Servlet 에서 페이지 이동을 위해 redirect 하는 메서드이다.Http 프로토콜을 사용하여 정해진 규칙으로 서버가 클라이언트에게 특정 URL 로 이동하라고 요청을 보낸다. sendRedirect 메서드를 사용하게 되면 서버에서는 클라이언트에게 응답 상태값을 302 와 함께 이동할URL 정보를 Location 헤더값에 담아 전송한다.클라이언트 브라우저는 서버로부터 받은 상태값이 302 일 경우 Location 헤더 값으로 재요청을 보내어Redirect 하게 된다. 예시)개발환경 : Spring Boot, JSP 위처럼 jsp 페이지가 2개가 존재한다. test.jspasdfsadfasdfasd response.sendRe..
2024.02.13 -
두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로의존성을 주입해준다. @Autowired Bean 객체 찾는 순서타입 > 이름 > @Qualifier > 실패@Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다.만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우@Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Servicepublic class UserDetailsServi..
@Autowired 와 @Resource 차이점두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로의존성을 주입해준다. @Autowired Bean 객체 찾는 순서타입 > 이름 > @Qualifier > 실패@Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다.만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우@Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Servicepublic class UserDetailsServi..
2024.01.31 -
개발환경 : Spring 4.4 버전, JDK 1.8 문제 좀 오래된 버전의 프로젝트를 실행 했을때 나오는 에러였다. STS 버전은 현재날짜 최신버전인 sts-4.18.1.RELEASE 였다. 에러 내용은 아래와 같다. 이 문제는 STS ini 파일을 보면 vmargs 에 들어갈 내용에 --add-opens 가 포함되어 있다. STS 버전은 높지만 Java 8 버전에서 사용할 수 없는 옵션이 있었다. Java 8 에서는 --add-opens 옵션을 지원하지 않는다고 한다. 해결방법 프로젝트의 vm args 값을 수정 해줘야한다. 프로젝트 마우스 오른쪽 버튼 > Run As > Run Configurations... > 톰캣 또는 Spring Boot App 에서 프로젝트 선택 > Arguments > V..
Java 1.8 버전 에러 - Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED개발환경 : Spring 4.4 버전, JDK 1.8 문제 좀 오래된 버전의 프로젝트를 실행 했을때 나오는 에러였다. STS 버전은 현재날짜 최신버전인 sts-4.18.1.RELEASE 였다. 에러 내용은 아래와 같다. 이 문제는 STS ini 파일을 보면 vmargs 에 들어갈 내용에 --add-opens 가 포함되어 있다. STS 버전은 높지만 Java 8 버전에서 사용할 수 없는 옵션이 있었다. Java 8 에서는 --add-opens 옵션을 지원하지 않는다고 한다. 해결방법 프로젝트의 vm args 값을 수정 해줘야한다. 프로젝트 마우스 오른쪽 버튼 > Run As > Run Configurations... > 톰캣 또는 Spring Boot App 에서 프로젝트 선택 > Arguments > V..
2024.01.31 -
접근 제한자(접근 제어자)란?Java 접근 제한자는 말 그대로 접근을 제어하기 위한 키워드이다.여기서 접근이란 클래스 및 메서드 등 이들이가지고 있는 정보를 클래스, 인터페이스 등다른 패키지에서 사용하지 못하도록 막을 필요가 있다.또한 객체 생성을 못하게 하거나 필드나 메서드를 사용하지 못하도록 막아야 하는 경우도 있다. 이때 접근 제한자 키워드를 사용해 제한할 수 있다.접근 제한자의 종류에는 public, protected, default, private 접근 제한자가 존재한다. 접근 제한자 종류 public외부 패키지에 존재하는 클래스들이 자유롭게 사용할 수 있다.같은 패키지내에서나 다른 패키지에서 자유롭게 접근할 수 있다.라이브러리 같은 외부 개발자들이 사용할 수 있도록 개발한다면 public 접..
Java 접근 제한자(접근 제어자)접근 제한자(접근 제어자)란?Java 접근 제한자는 말 그대로 접근을 제어하기 위한 키워드이다.여기서 접근이란 클래스 및 메서드 등 이들이가지고 있는 정보를 클래스, 인터페이스 등다른 패키지에서 사용하지 못하도록 막을 필요가 있다.또한 객체 생성을 못하게 하거나 필드나 메서드를 사용하지 못하도록 막아야 하는 경우도 있다. 이때 접근 제한자 키워드를 사용해 제한할 수 있다.접근 제한자의 종류에는 public, protected, default, private 접근 제한자가 존재한다. 접근 제한자 종류 public외부 패키지에 존재하는 클래스들이 자유롭게 사용할 수 있다.같은 패키지내에서나 다른 패키지에서 자유롭게 접근할 수 있다.라이브러리 같은 외부 개발자들이 사용할 수 있도록 개발한다면 public 접..
2024.01.19 -
폴링, 롱 폴링, SSE 방식이 필요한 이유 폴링, 롱 폴링, SSE 등의 방식이 필요한 이유는 HTTP 프로토콜의 주요 특징인 비연결성 때문이다. 실시간 알림 기능은 서버가 클라이언트에게 데이터를 보내면 클라이언트가 이를 인지하여 알림을 띄워야하는 구조인데 HTTP 프로토콜인 웹에서도 실시간 기능이 필요했다. 이러한 실시간 처리가 필요할때 사용하는게 폴링, 롱 폴링, SSE 등의 방식이다. Polling 이란? 클라이언트가 주기적으로 서버로 요청을 보내는 방식이다. 일정시간마다 클라이언트가 서버로 요청을 보내 데이터 갱신이 있는지 확인하고, 갱신 시 응답을 받는 방식이다. 폴링 방식의 구현은 간단하지만 클라이언트가 계속해서 서버로 요청을 하기 때문에 리소스 낭비가 심하다. 보낼 데이터가 없지만 계속해서..
Polling(폴링), Long Polling(롱 폴링), SSE(Server Sent Events)폴링, 롱 폴링, SSE 방식이 필요한 이유 폴링, 롱 폴링, SSE 등의 방식이 필요한 이유는 HTTP 프로토콜의 주요 특징인 비연결성 때문이다. 실시간 알림 기능은 서버가 클라이언트에게 데이터를 보내면 클라이언트가 이를 인지하여 알림을 띄워야하는 구조인데 HTTP 프로토콜인 웹에서도 실시간 기능이 필요했다. 이러한 실시간 처리가 필요할때 사용하는게 폴링, 롱 폴링, SSE 등의 방식이다. Polling 이란? 클라이언트가 주기적으로 서버로 요청을 보내는 방식이다. 일정시간마다 클라이언트가 서버로 요청을 보내 데이터 갱신이 있는지 확인하고, 갱신 시 응답을 받는 방식이다. 폴링 방식의 구현은 간단하지만 클라이언트가 계속해서 서버로 요청을 하기 때문에 리소스 낭비가 심하다. 보낼 데이터가 없지만 계속해서..
2024.01.17