분류 전체보기(137)
-
[Java Script] 함수와 프로토타입 체이닝 4
1. 프로토타입의 두 가지 의미 - 자바스크립트는 프로토타입 가븐의 객체지향 프로그래밍을 지원한다 - 자바스크립트는 클래스 개념이 없기 때문에 객체 리터럴이나 생성자 함수로 객체를 생성한다. => 이 때, 생성된 객체의 부모 객체가 '프로토타입' 객체이다. => 모든 객체는 프로토타입 객체를 가리키는 '암묵적 프로토타입 링크'([[Prototype]] 링크)가 있다 => 객체지향의 상속처럼 부모 객체가 가진 프로퍼티나 메서드 사용 가능 - 함수 객체의 prototype 프로퍼티와 객체의 숨은 프로퍼티인 [[Prototype]]을 구분해야 한다 => 이를 위해 자바스크립트의 객체 생성 규칙을 알아야 한다. => 모든 객체는 자신을 생성한 생성자 함수의 prototype 프로퍼티가 가리키는 프로토타입 객체를..
2021.08.05 -
[Java Script] 함수와 프로토타입 체이닝 3
- arugments 객체 뿐만 아니라 this 인자가 함수 내부로 암묵적으로 전달됨 - 함수가 호출되는 방식인 호출 패턴에 따라 this가 다른 객체를 참조한다 (this 바인딩) 1. 객체의 메서드 호출할 때, this 바인딩 - 메서드 : 객체의 프로퍼티가 함수인 경우 - 메서드를 호출할 때, 해당 메서드 내부의 this는 메서드를 호출한 객체가 된다. var myObject= { name : 'foo', sayName:function(){ console.log(this.name); } }; var otherObject = { name : 'bar' }; otherObject.sayName = myObject.sayName; myObject.sayName(); //foo otherObject.say..
2021.08.05 -
3. DFS/BFS
1. 그래프 (1) 인접 행렬 방식 - 2차원 배열로 그래프의 연결 관계를 표현하는 방식 INF = 999999999 graph = [ [0,7,5], #0번 노드는 0번 노드와 거리가 0, 1번 노드와 거리가 7, 2번 노드와 거리가 5 [7,0,INF], #1번 노드는 0번 노드와 거리가 7, 1번 노드와 거리가 0, 2번 노드와 연결되어있지 않음 [5,INF,0] #2번 노드는 0번과 거리가 5, 1번 노드와는 연결되어있지 않음, 2번 노드와 거리가 0 ] - 모든 관계를 저장하므로 노드 개수가 많을수록 메모리가 불필요하게 낭비됨 (2) 인접 리스트 방식 - 리스트로 그래프의 연결 관계를 표현하는 방식 INF = 999999999 graph = [ [(1,7),(2,5)], #0번 노드는 1번 노드..
2021.08.04 -
[Spring5입문] 의존 자동 주입
1. @Autowired 애노테이션을 이용한 의존 자동 주입 - 스프링의 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. import org.springframework.beans.factory.annotation.Autowired; public class ChangePasswordService { @Autowired //의존을 주입할 대상에 @Autowired 애노테이션 추가 private MemberDao memberDao; public void setMemberDao(MemberDao memberDao) { this.memberDao = memberDao; } } //스프링 설정 파일 @Configuration public class AppCtx{ @Bean public M..
2021.08.04 -
[Spring5입문] 스프링 DI
1. 의존이란? - 의존 : 객체 간의 의존, 한 클래스가 다른 클래스의 메서드를 실행할 때, 이를 '의존'한다고 표현한다 ex) MemberRegisterService 클래스가 MemberDao 클래스의 메서드를 실행하면, MemberRegisterService 클래스가 MemberDao 클래스에 의존한다고 표현한다 - 가장 쉬운 방법은 의존 대상의 객체를 직접 생성하여 의존대상.메서드() 형식으로 사용하는 것 => 유지보수 관점에서 문제점 유발 가능 2. DI를 통한 의존 처리 - DI (Dependency Injection) : 의존 주입, 의존하는 객체를 직접 생성하는 대신 의존 객체를 전달받는 방식 사용 public class MemberRegisterService{ private MemberD..
2021.08.03 -
[Java Script] 함수와 프로토타입 체이닝 2
1. 함수의 다양한 형태 (1) 콜백 함수 - 익명함수의 대표적인 용도 - 개발자는 단지 함수를 등록하기만 하고, 어떤 이벤트가 발생하거나 특정 시점에 도달 시, 시스템에서 호출되는 함수를 말함 - 특정 함수의 인자로 넘겨서, 코드 내부에서 호출되는 함수를 말하기도 함 (2) 즉시 실행 함수 (immediate functions) - 익명함수를 사용함 - 이 경우, 해당 함수를 다시 호출할 수 없다 => 최초 한 번의 실행만을 필요로 하는 초기화 코드 부분 등에 사용 (function(name){ console.log('This is the immediate function => ' + name); })('foo'); - 대표적인 예시 : jQuery와 같은 자바스크립트 라이프러리나 프레임워크 소스들 =..
2021.08.02