2022.08.31 - [🌱JAVA/🌱데이터 타입(DataType)] - 데이터 타입 및 변수란
# 타입이란?
타입(data type)은 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 한다. 자바에서는 여러 형태의 타입을 미리 정의하여 제공하고 있는데, 이것을 기본 타입(primitive type)이라고 한다.
- 아래의 예시를 보면 쿼리문 밑에 String 이라는 타입값을 볼 수 있다. 이것은 해당 쿼리를 수행하고 반환되는 값이 String 타입 이라는 의미이다.
@Transactional
@Query(value = "select username from user_table where username = :username", nativeQuery = true)
String apply_some_data(@Param("username") String username);
- 또다른 예는 아래와 같은데, List<UserEntity> 라는 리스트형 타입으로 반환된다.
@Transactional
@Query(value = "select * from user_table where username = :username", nativeQuery = true)
List<UserEntity> search_value(@Param("username") String username);
- UserEntity의 내용을 보면 아래와 같은데, 이 의미는 해당 리턴값이 UserEntity타입에 매핑되어 값을 반환한다고 볼 수 있다. 그래서 쿼리 결과에 대한 반환값이 UserEntity의 타입값과 일치하지 않으면 숫자는 int, 문자는 String 등 반환되는 값에 대한 타입으로 변경 해줘야 한다.
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long userid;
@Column(name = "username")
private String username;
@Column(name = "user_description")
private String userDescription;
@Column(name = "published")
private boolean published;
# 리턴 타입이란?
리턴 타입은 리턴값의 타입을 말한다. 리턴값이란 메소드를 실행한 후의 결과값을 말한다. 메소드는 리턴값이 있을 수도 있고 없을 수도 있다. 하지만 리턴 타입은 선언부에 명시되어야 한다.
- 위에서도 언급했듯이 반환되는 값의 형태가 타입과 일치해야 한다.
예를들어 아래와 같은 코드가 존재 한다고 할때 GeneralResponse의 값은 아래와 같다.
public GeneralResponse<?> apply_some_data(String username) {
String optionalUserEntity = userRepository.apply_some_data(username);
return GeneralResponse.builder()
.status(true)
.message("get user_list")
.data(optionalUserEntity)
.build();
}
public class GeneralResponse <T> {
private boolean status;
private String message;
private T data;
}
타입의 매핑 정보는 아래와 같다. 아래의 내용을 보면 해당 메소드는 연산 후 GeneralResponse<?> 타입으로 반환을 한다.
해당 GeneralResponse클래스의 타입을 보면 아래와 같다. 그래서 반환하는 타입과 반환값이 맵핑이 되어 있어야 한다.
- 끝 -
'🌱JAVA > 🌱 데이터 타입(DataType), 레퍼런스와 스태틱' 카테고리의 다른 글
레퍼런스와 스태틱 (0) | 2022.09.01 |
---|---|
데이터 타입 및 변수란 (0) | 2022.08.31 |