본문 바로가기

전체 글

(75)
python 객체지향(OOP) 객체지향에서 객체(Object)란 무엇인가? 객체는 어떤 속성(attributes)이나 값(Value), 함수(methods)를 가진 데이터이다. 객체는 모든 클래스의 베이스 클래스이다. 코드로 쉽게 이해하자면 class Obclass: attribute = value def method(): pass 이런식으로 구성되어있다. 그렇다면 클래스에 대해 알아보자. 클래스(class) 객체 단위로 프로그래밍한다는 것은 구체적으로 어떻게 하는 것인가? 위 내용에서 객체를 정의할 때, 객체는 모든 클래스의 베이스 클래스라고 했다. 객체는 이미 선언된 클래스를 기반으로 만들어진다는 말이다. 예를들어 class1(attributes, value, method) class2(attributes, value, metho..
python 객체지향(OOP) 설계 원칙 oop를 활용하여 프로그램 설계할때의 5가지 원칙 객체 지향의 5가지 원칙을 이용하여 프로그램을 설계할 수 있다. SRP(Single Responsilbility Principle) : 단일 책임 원칙 하나의 클래스&메서드는 단 하나의 책임을 가져야 한다는 의미이다. 단 하나의 기능만을 가지는 것을 의미하며 해당 기능이 변경될 때에만 클래스가 변경될 수 있다는 뜻이다. 또한 하나의 기능을 수행하는 클래스는 재사용성이 높아지고, 객체가 결합도가 최소가 된다. (단일 책임 원칙 예제) class BookService: def findBookById(query): # DB에서 찾아오기 # Log 파일에서 찾은 정보 쓰기위 클래스에서 사용되는 메서드는 DB에서 책을 찾아오고 찾은 정보를 Log파일에 기록하는 2..
python 정적메소드 python의 정적메소드란? 정적메소드는 클래스에서 직접 접근할 수 있는 메소드이다. class에서 직접 접근할 수 있는 메소드는 @staticmethod와 @classmethod가 있다. python에서는 정적메소드임에도 인스턴스에서 접근 가능하다. staticmethod 파이썬에서 사용법은 @staticmethod라는 데코레이터를 사용하여 정의한다. 인스턴스 메소드처럼 self라는 인자를 사용안해도 된다. class A: @staticmethod def add(a, b): return a+b if __name__ == "__main__": a = A() a.add(1,2) 사용법은 이러하다. classmethod classmethod도 사용법은 @classmethod라는 데코레이터를 사용하여 정의할 ..
python @property에 대해서 접근제어자 접근 제어자에는 public, private, protected가 있다. python은 다른언어와 달리 접근 제어자가 없고, 작명법으로 접근을 제어할 수 있다. 사용법은 아래에 있다. public -> 아무런 표시가 없다 private -> 두개의 밑줄(언더바)을 적용할 수 있다. protected -> 한개의 밑줄(언더바)을 적용할 수 있다. 코드로 사용하면 이렇게 된다. class Example: def __init__(self): pass def public(self): print("public") def _protected(self): print("protected") def __private(self): print("private")get / set 다른 언어에서 private를 사용..
약수의 합 프로그래머스 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수를 완성하라. ex) 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. public class Solution2 { public int solution(int n) { int answer = 0; if(n == 1) { answer = 1; }else { for(int i=1;i
Django 구조 Django 코드의 구조에 대해.. 데이터기반 웹 사이트에서 웹 어플리케이션은 웹브라우저(클라이언트)로 부터 HTTP요청(request)을 기다린다. 요청을 받으면 웹 어플리케이션은 URL과 POST 데이터 또는 GET 데이터의 정보에 기반하여 요구사항을 알아낸다. 이후 DB로부터 정보를 읽거나 쓰고, 필요한 다른 작업들을 수행하는 것이다. 다음 웹 어플리케이션은 웹브라우저에 응답(response)을 반환 하는데, 주로 동적인 HTML 페이지를 생성하면서 응답한다. Django의 구조를 알기위해 어떠한 단계로 수행되는지 알아 볼 수 있다. 간단하게 아래 그림으로 알아보자! 각각 의미를 알아보면 urls.py 함수 각각 모든 URL 요청을 처리하는것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리..
django shell plus, Jupyter Notebook 설치 Jupyter Notebook install $ pip install "ipython[notebook]" django-extensions install $ pip install django-extensions 위의 내용 설치후 django의 settings.py의 INSTALLED_APPS에 해당 내용을 추가 시켜준다. INSTALLED_APPS = [ ..., 'django_extensions', ] 그리고 터미널에서 shell_plus를 실행시켜 좀 더 나은 python shell을 사용할 수 있다. (물론 django와 연동되어 사용가능하다.) Jupyter notebook $ ./manage.py shell_plus --notebook 을 사용하여 notebook을 사용할 수 있다...
Typora 설치하기 Typora란? 마크다운 문서 작성을 사용하는 툴인 typora의 설치 방법을 알아보려 한다. Typora 홈페이지로 들어가서 위와 같이 다운로드 버튼을 클릭후. 자신에게 맞는 OS를 선택 후 다운받으면 된다. 마크다운으로 글을 작성하면서 글자에 서식을 지정후 바로 확인할 수 있고, 쉽고 간편하게 사용이 가능하다.