본문 바로가기

전체 글51

클래스, 객체, 인스턴스 클래스 (class) 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀 객체를 만들어내기 위해 필요한 변수(객체의 상태를 나타내는(필드))와 메서드(객체의 행동)들이 존재 (연관되어 있는 변수와 메서드의 집합) ex) 붕어빵을 만들기 위한 틀 객체(Object) 클래스에 선언된 모양 그대로 생성된 객체 클래스의 인스턴스 ex) 붕어빵 인스턴스 클래스를 통해서 구현해야할 대상(객체) 실제로 구현된 구체적인 실체 → 메모리에 할당됨 특징 인스턴스는 객체에 포함된다고 볼 수 있다 OOP 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 한다 ex) 붕어빵 틀로 찍어낸 각각의 붕어빵(팥붕어빵, 슈크림 붕어빵 ... ) 2022. 7. 26.
DAO, DTO, VO DAO(Data Access Object) **`데이터베이스의 data에 접근하기 위한 객체`** DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 DTO(Data Transfer Object) VO(Value Object)로 바꿔 말할 수 있는데 **`계층간 데이터 교환을 위한`** 자바 빈즈 계층 -> 컨트롤러, 뷰, 비즈니스 계층, 퍼시스턴스 계층 각 계층 간 데이터 교환을 위한 객체를 DTO 또는 VO라고 부른다 로직을 가지지 않는 순수한 데이터 객체(getter & setter만 가진 클래스) VO(Value Object) 값 오브젝트로써 값을 위해 쓰인다 VO는 DTO와 동일한 개념이지만 read only 속성을 가진다 DTO와 유사하지만 DTO는 setter를 가지고.. 2022. 7. 25.
String에서 ==와 equals()의 차이 String에서 ==와 equlas의 차이 == 연산자 **주소값이 같은지를 비교** int, boolean과 같은 `primitive type`에 대해서는 값을 비교 cf) `primitive type`도 Constant Pool에 있는 특정 상수를 참조하는 것이기 때문에 결국 주소값을 비교하는 것으로 볼 수 있다 같은 상수를 참조하면 주소값이 같으니 결국 같은 값이면 동일하다고 판단 equals() 존재하지 않음 `reference type`에 대해서는 주소값을 비교 equals() String은 객체여서 equals()를 통해 비교해야 한다 내부적으로 주소값을 비교하지만 **String 클래스에서는 equals()를 재정의해 내용을 비교** 기본형 타입(`primitive type`) 총 8가지의 .. 2022. 4. 27.
DFS와 BFS DFS(깊이 우선 탐색) -> **스택(혹은 재귀)** 구현 **스택**에 시작 노드를 넣는다 스택이 비어있으면 실행을 멈추고 False 반환 스택의 맨 위 노드가 찾고자 하는 노드라면 탐색을 종료하고 True 반환 3에서 스택의 맨 위 노드가 찾고자 하는 노드가 아니라면 해당 노드를 POP. 스택에 들어온 적이 없는 POP한 노드의 모든 이웃 노드를 찾아 순서대로 스택에 넣는다 3으로 돌아간다 DFS(G,u) u.visited = ture for each v ∈ G.Adj[u] if v.visited == false DFS(G, v) init() For each u ∈ G u.visited = false For each u ∈ G DFS(G, u) 장점 현 경로상의 노드를 기억하기 때문에 적은 메모리 .. 2022. 3. 27.