개인 공부
-
java 상속개인 공부/java 2021. 6. 29. 07:44
상속이란 상속이란 부모가 보유하는 것을 자식이 물려 받는 것을 의미한다. java에서도 같은 의미인데 이는 확정성과 직결되는 의미를 지닌다. java는 단일 상속 java는 단일 상속만을 지원하며 다중 상속은 지원하지 않는다. 다른 언어들은 다중 상속이 지원하는 경우가 있지만 java는 완전한 객체지향 개념에는 다중 상속이 필요치 않다고 보고 있다. 또한 다중 상속을 지원하게 되면 생성되는 객체의 명확성이 떨어지게 된다. 그래서 자바에서 상속은 특정 클래스가 가지는 일부 속성과 기능을 다른 새로운 클래스에 제공하기 위해 맺는 클래스간의 관계를 말한다. 또한 클래스간의 상속이란 extends 예약어를 통해 부모클래스(super class)를 자식 클래스(sub class)로 관계를 맺는 것인데 만약 상속을..
-
String 이란개인 공부/java 2021. 6. 23. 07:41
String 이란 String은 기본 자료형처럼(= int, float, char, boolean) 자주 사용되는 class이다. 여기서 처럼이란 의미는 String은 이 기본 자료형들과는 다르게 참조 자료형 class라는 것이다. 참조 자료형이란 객체 자체에 값을 가지는 것이 아닌 객체에는 referenece(주소) 값을 갖고 있고 해당 reference에 객체의 값이 있는 형태다. 여기서 String을 생성하는 방법이나 기타 기본이 되는 내용은 생략하고 정리하겠다. 기본 method는 String api를 확인할 것을 추천한다. String의 비교 위에서 언급한 내용처럼 String은 참조 변수이기 때문에 ==으로 비교시 새로 생성된 두 객체의 주소값은 당연히 다르므로 false가 나온다. 그렇기 때..
-
spring[19] Spring의 요청과 응답 과정개인 공부/spring 2021. 6. 19. 22:01
HTTP 메세지 컨버터 지금까지 우리는 HTTP의 요청과 응답을 알아봤다. Spring에서 우리가 요청하는 내용과 응답하는 값들을 자동으로 설정을 해준다고 하는데 이것은 어떻게 작동하는 것일까? 그 자동으로 변환시켜주는 것이 HTTP 메세지 컨버터이다. HTTP API처럼 JSON 데이터를 HTTP 메세지 바디에 직접 읽거나 쓰는 경우 HTTP 메세지 컨버터를 사용하면 편리하다. 우리가 HTTP 메세지 바디에 데이터를 전달하기 위해 사용했던 @ResponseBody를 사용했을 때 viewResolver 대신 HttpMessageConverter가 동작하여 데이터를 그대로 전달받을 수 있는데 그 예시로 ByteArrayHttpMessageConverter StringHttpMessageConverter M..
-
spring[18] Response 응답개인 공부/spring 2021. 6. 19. 21:19
Response 응답 응답 데이터를 만드는 방법도 크게 3가지이다. 정적 리소스 : HTML, css, js 등 웹 브라우저에 정적인 데이터를 제공할 때 뷰 템플릿 사용 : 웹 브라우저에 동적인 데이터를 제공할 때 HTTP 메세지 사용 : HTTP API를 제공하는 경우 HTTP 메세지 바디에 데이터를 제공할 때 정적 리소스 스프링 부트는 아래 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources. /META-INF/resources뷰 템플릿 뷰 템플릿은 jsp, thymeleaf 등의 뷰 템플릿을 거쳐 HTML이 생성되고 뷰가 응답을 만들어서 전달하는 것인데 스프링 부트는 기본적으로 아래 디렉토리에 있는 경로로 제공한다. src/main/resources/temp..
-
spring [17] request 요청개인 공부/spring 2021. 6. 19. 11:18
request 요청 Spring에서의 요청을 알아보려고 한다. 먼저 매핑정보에 대해서 알아봐야하는데 class 단위의 controller 설정 @Controller : 반환 값이 String이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 렌더링된다. @RestController : 반환 값이 HTTP message body에 입력된다. 따라서 실행결과를 메세지로 받을 수 있다. method 단위 설정 @RequestMapping("url") : url 호출이 오면 해당 메서드가 실행된다. 또한 배열로 제공하여 다중 설정이 가능하다 @RequestMapping({"url1","url2"}) method 속성을 명시하지 않으면 모든 요청에 호출된다. @RequestMapping(value = "url",..
-
static 변수와 static 메서드 그리고 static 초기화개인 공부/java 2021. 6. 17. 07:39
static이란 메서드나 멤버변수에 static이라는 예약어를 정의하면 해당 멤버변수나 메서드들의 객체가 생성될 때 static 영역이라는 곳에 유일하게 생성되어지면서 모든 객체들이 공유하여 사용하게 된다. [접근제한] static [반환형] 메서드명(){} [접근제한] static [자료형] 변수명; 다음과 같이 사용한다. static 변수 static으로 선언되었다면 객체를 생상하지 않고 사용할 수 잇으며 아무리 많은 객체를 생성한다고 해도 static 변수는 오직 하나만 만들어지며 그것은 모든 객체가 공유한다. 예를들어 은행에서 0.1% 금리를 주고 있었다고 가정해보자 근데 이 금리가 상승하여 0.2%의 금리를 적용해야하는 상황인데 은행을 이용하는 고객들의 모든 통장이 각각 하나의 객체라면 모든 통..
-
생성자와 this개인 공부/java 2021. 6. 14. 07:43
생성자란 생성자란 메모리 내 객체가 생성될 때 자동적으로 단 한번 호출되어 객체의 구조를 인식하고 생성되는 객체의 멤버변수들을 초기화하는 데 목적을 둔 것을 말한다. 생성자의 특징으로는 반환 타입이 없다. 생성자명이 클래스명과 같다. class Car{ int speed; public void setSpeed(int s){ speed = s; } } Car car = new Car(); new 연산자 뒤로 오는 것을 생성자란 것인데. 위 예문과 같이 전달되는 인자가 없는 생성자를 default 생성자라고 한다. 또한 생성자라는 형태의 메서드가 Car class 내부에 존재하지 않는데도 사용할 수 있는데 이는 개발자가 생성자를 class 내부에 단 1개도 정의하지 않았을 경우 컴파일러가 컴파일할 때 자동으..
-
spring[16] Spring MVC 실제 사용법개인 공부/spring 2021. 6. 13. 10:22
Spring MVC 스프링은 어노테이션을 활용하여 매우 유연하고 실용적인 컨트롤러를 만들었는데 @ReqeustMapping을 사용하는 컨트롤러가 그것이다. @RequestMapping RequestMappingHandlerMapping RequestMappingHandlerAdapter 핸들러 매핑과 핸들러 어댑터의 우선순위가 있는데 HandlerMapping 0 = RequestMappingHandlerMapping : 애노테이션 기반의 컨트롤러인 @RequestMapping에서 사용 1 = BeanNameUrlHandlerMapping : 스프링 빈의 이름으로 핸들러를 찾는다.HandlerAdapter 0 = RequestMappingHandlerAdapter : 애노테이션 기반의 컨트롤러인 @Req..