분류 전체보기
-
객체지향이란?Study/객체지향 프로그래밍 2020. 4. 27. 12:19
객체지향 프로그램은 추상화라는 개념을 이용한다. 추상화는 자세한 사항을 다루는 것에서 해방시켜주는 개념으로, 자세한 묘사를 생략하고 특징만 포착해서 그리는 것이라고 할 수 있다. 객체지향 프로그램은 프로시저 추상화와 데이터 추상화를 묶어 놓은 것이다. 프로시저 추상화 프로시저 추상화란 특정 프로시저를 사용할 때 프로시저 안에서 어떤 계산이 이루어지는지 자세히 모르더라도 어떻게 호출하고 무엇을 수행하는지만 알고 있으면 자세한 것은 걱정할 필요가 없는 것을 의미한다. 데이터 추상화 데이터 추상화란 데이터 자체만 정의하는 것이 아니라 데이터에 대한 조작, 즉 오퍼레이션도 함께 정의하는 개념이다. 데이터 추상화를 적용한 시스템은 서비스를 제공하는 객체들의 집합으로 볼 수 있다. 데이터 추상화는 시스템의 복잡성을..
-
소프트웨어 품질의 특성Study/객체지향 프로그래밍 2020. 4. 27. 11:59
사용 용이성: 사용자가 소프트웨어를 수비게 사용할 수 있느지를 의미한다. 사용 용이성에는 여러 가지 측면이 있는데 초보자가 쉽게 배울 수 있는 특성, 전문가가 효율적으로 사용할 수 있는 특성, 오류를 쉽게 다룰 수 있는 특성 등이 포함된다. 효율성: 소프트웨어를 작동시키는 데 드는 비용의 절감을 뜻함 신뢰성: 결함이 적을수록 신뢰성이 높다. 유지보수성: 소프트웨어를 쉽게 변경할 수 있는 성질, 변경하기 어려울수록 유지보수성이 낮다. 재사용성: 소프트웨어 부품을 조금만 변경하여 다른 여러 시스템에서 사용할 수 있다면 재사용성이 높은 것이다. 재사용성이 높으면 장기적으로 개발비를 절약할 수 있다.
-
Java 자바 개요Software Development/Java 2020. 4. 18. 21:24
The Java "White Paper" Buzzwords Simple Object-Oriented Network-Savvy Robust Secure Architecture-Neutral Portable Interpreted High-Performance Dynamic Development Environment Command-Line Tools javac java Intergrated Development Environment Eclipse A Simple Java Program public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } } Constants final public cl..
-
Python Decorator 란?Software Development/Python 2020. 4. 10. 17:26
Decorator는 호출 가능한(callable) 함수, 메소드 또는 클래스 definition을 수정하는데 사용되는 파이썬 객체입니다. Decorator는 정의된 원래 객체를 받아 수정된 객체를 return하며, 정의된 이름에 바인딩 됩니다. Decorator는 Java annotations에서 영감을 받아 비슷한 syntax를 가지고 있습니다. @을 사용합니다. 아래의 코드는 @dec2 @dec1 def func(arg1, arg2, ...): pass 아래의 코드와 동일합니다. def func(arg1, arg2, ...): pass func = dec2(dec1(func)) 장식자는 메타 프로그래밍의 한 형태입니다. 예를 들어 아래 샘플에서 viking_chorus는 menu_item을 호출할 때..
-
Python metaclasses, singleton patternSoftware Development/Python 2020. 4. 10. 16:36
메타클래스는 인스턴스가 클래스인 클래스입니다. "일반적인"클래스가 클래스의 인스턴스의 동작을 정의하는 것처럼 메타 클래스는 클래스의 동작과 인스턴스의 동작을 정의합니다. 메타클래스는 모든 객체 지향 프로그래밍 언어에서 지원되진 않습니다. 메타클래스를 지원하는 프로그래밍 언어는 구현 방식에 따라 상당히 다릅니다. 메타클래스를 사용하는 수 많은 용도가 있습니다. 몇가지만 말하자면 아래의 예를 들 수 있습니다. 로깅 및 프로파일링 인터페이스 검사 생성시 클래스 등록 자동으로 새로운 메소드 추가 자동 속성 생성 프록시 리소스 자동 잠금/동기화 원칙적으로 메타 클래스는 다른 파이썬 클래스와 마찬가지로 정의되지만 "type" 에서 상속되는 클래스입니다. 또 다른 차이점은 메타 클래스를 사용하는 클래스 문장이 끝날 ..
-
Oracle - 반드시 알아야 하는 오라클 힌트절 7가지Software Development/Database 2020. 4. 8. 12:57
출처: http://www.dbguide.net/knowledge.db?cmd=view&boardConfigUid=19&boardUid=183970 데이터 전문가 지식포털 DBGuide.net 이병국 andongcn@dreamwiz.com 프리랜서 DB 엔지니어. 동아제약 전산실에서 SW 개발 업무를 시작으로 프리랜서 개발자로 독립해 활동하던 중 우연한 기회에 DB와 인연을 맺게 됐다. 현재 삼성생명 전산 운영팀에서 쿼리 성능을 개선하는 DB 튜닝과 IOA 업무를 맡고 있다. 개발자 출신의 DB 엔지니어로 활동하면서 개발자에게 DB 관련 지식이 꼭 필요함을 절감했다. ‘정보의 불균형이 시장 왜곡을 가져온다’는 ‘레몬시장이론’은 중고차 거래에서 www.dbguide.net CBO[1] 방식에서 옵티마이저는..
-
NumPy 알아보기Software Development/Python 2020. 4. 6. 17:09
NumPy란? NumPy는 파이썬과 함께 과학적인 계산을 위한 패키지입니다. 1. 강력한 다차원 배열 객체 2. 크기가 다른 배열 간의 연산인 broadcasting 함수 3. C/C++ 그리고 Fortran 코드와의 통합 툴 4. Linear algebra, Fourier transform, random number capabilities에서의 유용함 이외에도 일반 데이터의 효율적인 다차원 컨테이너로 사용될 수 있습니다. 임의의 데이터 유형을 정의 할 수 있습니다. 이를 통해 NumPy는 다양한 데이터베이스와 원활하고 신속하게 통합할 수 있습니다. Quickstart tutorial 출처: https://numpy.org/devdocs/user/quickstart.html 3브로드캐스팅