분류 전체보기 (337) 썸네일형 리스트형 Data Base Architecture 1 Stand-Alone 방식 먼저 Stand-Alone 방식입니다 데이터 베이스의 동작머신이 LAN이나 인터넷 등의 네트워크를 통해 접속하지 않고 '독립되어' 동작하는 구성이라고 합니다. 이게 무슨 말이냐 하면 데이터 베이스를 사용하고 싶은 사용자는 데이터 베이스 서버가 설치된 장소까지 물리적으로 접근해서 데이터 베이스 서버를 다뤄야 한다는 의미입니다. 물리적으로 접근한 뒤 사용해야하기 떄문에 보안성이 높은 것이 아주 큰 장점입니다. 또한 주로 구축이 간단해서 소규모 작업이나 테스트를 빨리할 수 있다는 점도 있습니다 단점이 현대의 서버로 동작하는 양식에 맞지 않습니다 물리적으로 떨어져 있으니 네트워크를 통한 접근이 안되며, 복수의 사용자가 동시에 작업을 할 수 없고, 가용성이 낮고,확장성이 부족하다 정.. [Java] 상속 (Inheritance) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 객체지향의 4가지 특징 원래 객체지향의 특징은 이 OOP 카테고리 맨 첫 번째로 포스팅되어야 했습니다. 이 4가지 특징에 대한 개념을 "상속"에 적는 이유는 저희는 벌써 2가지 특징 "추상화" ,"캡슐화"를 배웠습니다. 캡슐화는 4편에서 설명드렸지만 "추상화"는 직접적으로 언급한 적이 없습니다. 객체지향 코딩을 하면서 이미 "추상화"를 했기 때문입니다. "추상화"라는 것은 객체들의 공통적인 (속성과 기능)을 뽑아내는 것 정도라고 만 아시면 됩니다. "다형성"은 개념이 복잡하므로 추후에 다루도록 하겠습니다 그렇다면 객체지향의 4가지 특징은 다음과 같이 정리 됩니다. 1. 추상화, Abstraction 2. 캡슐화, Encapsulation 3. 상속.. [Java] 캡슐화 (Encapsulation) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 캡슐화? 캡슐화는 한 마디로 "은닉화"라고 생각하시면 됩니다. 일단 하나의 클래스를 예제로 들어보겠습니다. 멤버 변수는 String 형인 name 과 int 형인 id 두 개 밖에 없습니다. 이 클래스의 멤버 변수에 접근하기 위해서는 다음과 같이 접근합니다. 이러한 접근방법은 클래스의 속성을 함부로 변경을 가능하게 만드는 위험성을 가지고 있습니다. private로 선언된 멤버변수의 getter ,setter 메서드 밑의 코드는 Student 라는 이름의 클래스입니다. 자세히 들여다 보시면 변수의 접근 제한자가 private로 선언되어있는 것을 확인할 수 있습니다. 그리고 밑의 메서드명에 'set' 과 'get' 이라는 단어가 들어가 있는 걸 확인 .. [Java] 생성자 오버로딩 생성자란? ,Constructor 생성자(Constructor)는 객체를 생성할 때 최초로 실행되는 메소드의 일종입니다. 코드를 통해 이해하자면 다음과 같습니다. "MyClass1"이라는 클래스를 하나 생성하고 이 클래스와 이름이 같은 메소드인 "public MyClass1()"이라는 메소드를 생성합니다. 바로 이 클래스의 이름과 동일한 메소드인 MyClass1() 이라는 메소드가 생성자인 것입니다. 이 생성자를 살펴보시면 Parameter로 두 개의 값을 받고 있습니다. 그리고 밑의 "this" 라는 Keyword를 통해 무엇인가 값을 할당하고 있습니다. "this"라는 키워드는 MyClass1 이라는 클래스의 멤버 변수에 접근할 수 있게 만들어주는 Keyword 입니다. 그리고 그 밑으로 Parame.. [Java] 오버로딩 (OverLoading) 오버로딩, OverLoading 오버로딩이란 메소드 이름을 동일하게 하면서 매개변수 값을 다르게 주어 여러개의 메소드를 구현할 수 있는 것입니다. 왜 쓸까? 절차지향에서는 기능별로 메소드를 따로따로 만들어야 합니다. 만약 정수형 값을 인자로 받는 함수는 정수형 값만 리턴시키고 실수형 값을 인자로 받는 함수는 실수형 값만 리턴시킵니다. 이를 보완하기 위해 객체지향에서는 매개변수의 타입이 각각 달라도 동일한 이름의 메소드를 갖게 만든다면 메소드를 구현할 때 매개변수의 값만 다르게 설정해서 메소드를 호출하면 그 메소드를 만든 정의대로 기능을 쓸 수 있습니다. 코드를 통한 오버로딩의 이해 오버로딩의 이해를 돕기 위해 아래의 코드와 같은 기준이 되는 메소드 하나를 만들어봅시다. 이 메소드의 보자면 반환값 int형.. [Java] 클래스 Object, 객체 처음 객체를 배울 떄 흔히 붕어빵에다가 많이 비유하곤 합니다 하지만 제 경우에는 이 비유가 더 어려웠습니다. 그래서 제가 이해한 객체에 대한 개념은 "설계도를 통해서 만들어진 특정 행위를 가지고 있는 것" 이라고 말씀드리고 싶습니다. "설계도"란 곧 클래스이며 "특정 행위"라는 것은 이 행위를 하기 위한 변수의 선언이나 함수의 기능들이라고 이해했습니다. 그런데 사실 코딩을 하다보면 어떤 개념보다는 그냥 코드를 통해서 이해하기가 더 쉬운 경우가 있는데 객체지향적 코딩이 바로 그런 것이라고 생각됩니다. 인스턴스 & 스태틱 변수 위에서 언급한 변수들을 다음과 같이 초기화 합시다. 인스턴스(Instance) 변수는 아래와 같이 '인스턴스화'를 시킨 뒤 호출이 가능합니다. '인스턴스화' 라는 .. 0은 False이다 !! 개요 youtube를 보던 중에 None 체크에 대해 설명하던 영상을 보게 됐는데 설명이 아주 직관적으로 다가와서 적어두고자 한다. Description class TodoItem: def __init__(self, state=None): self.state = state if state else -1 def __str__(self): if self.state == -1: return "UNDEFINED" elif self.state == 1: return "UNSET" else: return "SET" 이 class의 생성자를 보면 state 값이 존재할 때 입력된 state를 그밖에 나머지는 -1로 self.state 변수를 초기화한다. 이후 __str__ 매직 메서들 통해 결과를 출력할 수 있게 되.. [LeetCode] removeElement 문제 Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed. Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k eleme.. 이전 1 ··· 25 26 27 28 29 30 31 ··· 43 다음