분류 전체보기
-
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..
-
spring[15] 직접 만든 MVC Framework와 Spring MVC Framework 비교개인 공부/spring 2021. 6. 13. 09:06
Spring MVC와 내가 만든 미니 MVC 지금까지 만든 MVC 프레임워크와 실제 Spring 프레임워크를 비교해보자. 지금까지의 구조를 잘 정리하고 이해했다면 우리가 만든 구조와 다른점이 거의 없다는 것을 알 수 있다. 위 그림과 아래 그림의 차이는 FrontController라는 이름 대신 DispatcherServlet이란 이름 차이일뿐 둘다 Servlet을 상속받아서 사용되는것도 똑같다. 그럼 실제 코드로 어떻게 동작하는 구조인지도 살펴보자 Spring MVC 실제 동작 구조 Dispatcher Servlet 동작 구조 Spring MVC도 프론트 컨트롤러 패턴으로 구현되어 있다. Spring의 프론트 컨트롤러가 바로 DispatcherServlet이다. 그리고 이 DispatcherServle..
-
spring[14] Servlet의 MVC Framework 만들기개인 공부/spring 2021. 6. 12. 13:26
지금까지 공부한 MVC spring하면 mvc 패턴의 framework로 잘 알고 있다. 하지만 이번에는 spring은 사용하지 않고 지금까지 공부한 servlet을 활용하여 mvc 패턴을 구현해보려고 한다. 위 그림과 같이 기존의 MVC 패턴으로 구현한 Servlet은 client의 하나의 url 호출이 있을때 하나의 매칭되는 하나의 servlet에서 controller와 같이 정보를 넘겨주는 방식이였다. 하지만 작동하는 servlet을 url마다 생성해야하고 하는 동작은 url의 값을 읽어와 view와 연결시켜주는 코드는 사용자가 요청한 서비스 로직을 제외하면 계속해서 반복되어지는 코드가 발생했다. 그래서 이 상황을 더 개발자스럽게 해결하기 위해 FrontController 패턴이 등장했다. Fron..
-
Method개인 공부/java 2021. 6. 11. 07:52
Method란 메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 지금까지 공부했던 필드 변수들이 물체라면 그 물체들의 행동을 만들어주는 것이 메서드이다. 메서드는 입력값(매개변수=parameter)가 있고 그 입력값을 받아서 무언가의 결과를 반환해낸다. 그 유명한 input이 있으면 output이 있다. 메서드란 클래스의 기능으로써 무조건 클래스 안에 선언해야한다. 매개변수(=parameter)의 전달과 반환의 방식 Call by value 메서드에서 매개변수를 받아서 값만 사용하고 전달 받은 매개변수의 값에는 영향을 미치지 않는 방식이다. 또한 대부분 매개변수로 기본 자료형을 받는다. class Test{ public int increase(int n){ n++; return ..
-
spring[13] Servlet의 MVC 패턴 적용개인 공부/spring 2021. 6. 9. 22:08
MVC 패턴이 등장한 이유 하나의 서블릿이나 JSP만으로 비지니스 로직과 뷰 렌더링까지 모두 처리하게 되면 유지보수가 어려워진다. 또한 뷰와 서비스 로직은 변경 사이클이 다르다. 예를 들어 화면이 변경됨에 따라 기능이 변경되지 않을 수 있고 기능이 변경됨에 따라 화면이 변경되지 않을 경우가 있기 때문이다. MVC란 Model : view에 출력할 데이터를 담아둔다. model 덕분에 view는 비지니스 로직이나 데이터 접근에 대해 몰라도 되고 화면 렌더링에 집중할 수 있다. View : 모델에 담겨있는 데이터를 사용하여 화면을 렌더링하는 일에 집중한다. Controller : HTTP 요청을 받아 파라미터를 검증하고 비지니스 로직을 실행한다. 그리고 View에 전달할 결과 데이터를 model에 담는다. ..
-
캡슐화와 변수의 개념개인 공부/java 2021. 6. 9. 10:01
캡슐화란 객체지향 언어의 가장 큰 특징으로 캡슐화(Encapsulation)을 빼놓을 수 없다. 여러 자료및 처리과정을 하나의 모듈(부품)처럼 사용하므로 객체간의 이식성이 높아지기 때문이다. 캡슐화란 관련 있는 자료, 동작들을 하나로 묶어 요약하고 사용자에게는 배우적인 접근을 허용하지 않는 대신에 사용의 편의성을 제공해주는 것이다. public class Car { private int speed = 50; public void speedUp(){ this.speed = 50; System.out.println(speed+"km 로 운행중입니다."); } public void speedBreak(){ this.speed = 0; System.out.println(speed+"km 로 정지합니다."); }..