전체 글

목표 자바의 상속에 대해 학습하세요. 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 1.자바 상속의 특징 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. # 상속 class Child extends Parent { //... } 위의 코드에서 Parent는 조상 클래스이고, Child는 자손 클래스이다. 자바 상속의 특징 1. 생성자와 초기화 블럭은 상속되지 않고 멤버만 상속된다. 2. 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 3. 다중 상속이 안 된다.(여러 조상 클래스를 둘 순 없다. 다만 하나의 조상 클래스가 여러 자..

팩토리얼의 사전적 정의 팩토리얼(階乘, 문화어: 차례곱, 영어: factorial)은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다. 예시를 들자면 4!은 4 x 3 x 2 x 1이 된다. 이 식을 4 x 3!로 바꿔서 쓸 수도 있다. 다만 1!은 1이 된다. 그 이유는 팩토리얼의 사전적 정의의 '그 수보다 작거나 같은 모든 양의 정수(자연수)의 곱이다.' 부분에서 힌트를 얻을 수 있다. 1보다 작은 양의 정수는 없기 때문에 1! = 1이 되는 것이다. 이 식을 1! = 1 x 0!로 바꿔서 쓸 수 있는데, 위에서 말했듯이 1! = 1이고, 양변의 합은 같아야 하므로 1 x 0! = 1이 되어야 하고, 이는 0..

목표 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 1.클래스 정의하는 방법 클래스는 객체를 정의한 것이고, 객체를 생성할 때 클래스를 사용한다. # class * 클래스는 객체를 정의한 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다. 속성은 쉽게 말해서 객체의 상태, 성질 등을 나타내는 것이고 기능은 객체가 할 수 있는 행동 예를 들면, Tv 볼륨 높이기, 줄이기, 채널 변경 등이 있다. 클래스{} 영역 안에 클래스 영역이 있고, 그 안에 메서드 영역이 따로 하나 더 있는데 클래스 영역에서는 멤버 변수를 정의할 수 있고, 메서드 영역에서는 메서드를 정의를 ..

@ModelAttribute public String modelAttributeV1(@ModelAttribute HelloData helloData) { ex) GET요청 username=jay&age=28 -> HelloData객체를 먼저 만들고, username과 age가 HelloData에 있는지 찾은 후에 있으면 이 프로퍼티의 setter를 가지고 파라미터의 값을 입력한다. ex) helloData.setUserName("jay) helloData.setAge(28) -> 그러면 helloData(HelloData타입, 이름 jay,나이 28)라는 이름을 가진 객체를 만들게 되는 것이고, 이 객체는 나중에 템플릿에서 활용할 수 있다. @RequestParam public String request..


목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 조건문 반복문 1.조건문 if, switch 주어진 조건이 참이냐 거짓이냐에 따라 다른 명령을 처리하도록 만든 수행문이다. # 조건문 **1.1 if문** if (조건식) { //조건식이 참일 때 수행될 문장들을 적는다. } ->if문은 가장 기본적인 조건문이며, 다음과 같이 '조건식'과 '괄호{}'로 이루어져 있다. if의 뜻이 '만일 ~라면'이므로 '만일 조건식이 참이면 괄호{} 안의 문장들을 수행하라.'라는 의미로 이해하면 된다.' ->조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. 조건식을 작성할 때 '='가 아닌 '=='를 사용한다는 점 유의할 것.그리고 조건식의 결과는 반드시 true 또는 false이어야 한다. ->괄호{}를 이용해..


빈 스코프란 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링 지원 스코프 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 1. request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프이다. 2. session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다. 3. application: 웹의..

스프링 빈은 간단하게 다음과 같은 라이프사이클을 가진다. 객체 생성 -> 의존관계 주입 @Configuration static class LifeCycleConfig { @Bean public NetworkClient networkClient() { NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http://hello-spring.dev"); return networkClient; } } } 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다. (위의 경우에도 객체가 생성되기 전에 s..


목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 1.산술 연산자 산술 연산자에는 사칙 연산자(+, -, *, /)와 나머지 연산자(%)가 있다. # 산술 연산자 1. 사칙 연산자 + - * / -> 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선순위가 높으므로 먼저 처리된다. 그리고 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다.(에러 발생) -> 나누기 연산자의 두 피연산자가 모두 int 타입인 경우, 연산 결과 역시 int 타입이다. 그래서 실제 ..