CSE(58)
-
[Spring5입문] 컴포넌트 스캔
- 컴포넌트 스캔 : 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능 => 설정 클래스에 빈으로 등록하지 않아도 빈 등록이 가능하므로 설정 코드가 크게 줄어드는 이점이 있다. 1. @Component 애노테이션으로 스캔 대상 지정 - @Component : 해당 클래스를 스캔 대상으로 표시한다. @Component public class 클래스이름{ ... } - @Component 애노테이션에 값을 주었는지에 따라 빈으로 등록할 때 사용할 이름이 결정된다. => 값을 주지 않았을 때 : 클래스 이름의 첫 글자를 소문자로 바꾼 이름이 빈 이름으로 사용된다 => 값을 주었을 때 : 그 값을 빈 이름으로 사용한다 @Component public class ExampleClass{ ... } //이 경..
2021.08.08 -
[자바 객체 지향] 객체 지향 설계 5원칙 : SRP, OCP, LSP
1. SRP - 단일 책임 원칙 - 클래스에 하나의 역할과 책임만 있도록, 역할과 책임을 분리하라는 것 => 클래스 뿐만 아니라 속성, 메서드 패키지, 모듈, 컴포넌트, 프레임워크 등에도 적용할 수 있다. 예시) - 남자는 반드시 군대에 가고, 여자는 절대로 군대에 가지 않는다고 하자 class 사람 { String 군번; ... } ... 사람 로미오 = new 사람(); 사람 줄리엣 = new 사람(); 줄리엣.군번 = "123456789"; => 다음과 같이 사람 클래스를 사용하게 되면 여자인 줄리엣이 군번 속성을 갖는 것을 막을 수 없다. => 따라서 사람 클래스를 상위 클래스로 두고, 남자 클래스와 여자 클래스를 만들고 공통점만 사람 클래스에 두면 된다. - 하나의 속성이 여러 의미를 갖는 경우..
2021.08.07 -
[자바 객체 지향] static 블록
- static 블록 예시 public class Animal { static{ System.out.println("동물 클래스 시작!"); } } public class Main{ public static void main(String[] args){ Animal pororo = new Animal(); } } //동물 클래스 시작! - 프로그램이 시작될 때, 모든 클래스가 T 메모리의 스태틱 영역에 로딩된다 (X) => 해당 패키지 또는 클래스가 처음으로 사용될 때 로딩된다 (O) => 따라서 위에서 Animal 클래스가 처음 사용되는 Animal pororo = new Animal(); 라인을 실행할 때, Animal 클래스가 스태틱 영역에 로딩되는 것이다. - static 블록은 해당 클래스가 처..
2021.08.07 -
[자바 객체 지향] 캡슐화
1. 객체 멤버의 접근 제어자 - UML 표기법 - : private 접근 제어자 ~ : default 접근 제어자 # : protected 접근 제어자 + : public 접근 제어자 - public : 모두가 접근 가능 - protected : 상속 또는 같은 패키지 내의 클래스에서 접근 가능 - [default] : 같은 패키지 내의 클래스에서 접근 가능 - private : 본인만 접근 가능 * 만약에 aaa.jar 파일 안에 packageOne 패키지가 있고, bbb.jar 파일 안에 packageOne 패키지가 있다면 => aaa.jar 파일 안의 packageOne 패키지 내 클래스나 객체는 bbb.jar 파일 안에 packageOne 패키지가 가진 public 멤버 뿐만 아니라 [defau..
2021.08.05 -
[자바 객체 지향] 다형성
1. 오버라이딩과 오버로딩 - 다형성의 가장 기본은 오버라이딩과 오버로딩이다. - 오버라이딩 : 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의 - 오버 로딩 : 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의 2. 다형성과 T 메모리 public class Animal{ public String name; public void showName(){ Systen.out.println("안녕 나는 %s야. 반가위\n", name); } } public class Penguin extends Animal{ public String habitat; public void showHabitat(){ System.out.printf("%s는 %s에 살아\n", name, ha..
2021.08.05 -
[Java Script] 실행 컨텍스트
1. 실행 컨텍스트 개념 - 콜 스택(call stack) : 함수를 호출할 때 해당 함수의 호출 정보가 차곡차곡 쌓여있는 스택 - 실행 컨텍스트는 콜 스택에 들어가는 실행 정보 하나와 비슷하다. - 실행 컨텍스트가 형성되는 세 가지 경우 전역 코드 eval() 함수로 실행되는 코드 함수 안의 코드를 실행할 경우 - ECMAScript에서 말하는 실행 컨텍스트 생성 => 현재 실행되는 컨텍스트에서 이 컨텍스트와 관련 없는 실행 코드가 실행되면, 새로운 컨텍스트가 생성되어 스택에 들어가고 제어권이 그 컨텍스트로 이동한다. console.log("This is gloabl context"); function ExContent1(){ console.log("This is ExContent1"); }; func..
2021.08.05