본문 바로가기

전체 글

[Computer Science] 자료구조 - ADT(추상자료형) / linked-list/ Stack / Queue !!! ADT(Abstract Data Type) ADT는 추상적으로 필요한 기능을 나열한 일종의 명세서(로직)이다. ADT는 기본자료형(대표적으로 리스트, 숫자, 문자열)을 활용하여 사용자에 의해 구현된다. 파이썬의 리스트와 자료구조의 리스트. 파이썬은 리스트 자료형이 자료구조의 연결리스트로 기능을 지원한다. 리스트는 임의의 메모리(위치)에 자료를 동적으로 처리할 수 있다. 파이썬의 리스트는 자료구조의 배열과 연결리스트의 특징을 모두 갖고 있다. 배열의 특징 : 인덱스 사용하여 노드에 접근가능 연결리스트의 특징 : 인덱스 크기를 자유롭게 확장가능, 서로 다른 자료형을 노드로 갖을 수 있다. 즉, 파이썬이라는 프로그래밍 언어는 기존 프로그래밍에서 발생한 어려운 점을 부분적으로 개선시켰다는 것을 알 수 있다. 파.. 더보기
[Computer Science] 리팩토링과 최적화 -Refactoring, Data Optimization 리팩토링이란 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것. Refactoring의 이유 코드를 정돈하여 중복된 부분을 제거 코드를 이해하면서 내부 구조를 바꾸는것으로 명확해져서 이해가 쉬워짐 코드의 이해가 쉬워 지면서 자동으로 버그를 알게 되어 Robust한 코드를 작성 하게 도와준다 코드디자인을 향상시키며,이는 곧 디자인이 나빠지는 것을 멈추게 하며, 소프트웨어를 보다 빨리 개발 할 수 있도록 도와준다. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. Refactori.. 더보기
[Computer Science] 예외처리(exception handling) - if ~else / try~except 예외 처리(exception handling) 예외란 프로그램이 정상적으로 실행될 수 없는 상황을 뜻한다. 외부 요인을 통제할 수 없다면, 프로그램 안에 예외 상황에 대한 대응책을 마련해두어야 하는것. 예외 처리의 방법 if 문 사용 코드를 실행하기 전에 예외 상황을 미리 검사. 예외 정보를 함수 밖으로 전달하기 위해 return 문과 오류 코드작성 입력값 검증이 필요하다. try 문을 사용 예외 상황을 미리 검사하지 않는다. 예외는 함수 호출과 코드 블록을 저절로 빠져나오며, 원하는 위치에서 처리. 예외 처리를 할 때는 if 문과 오류 코드를 이용하기보다는, try 문을 이용하는 것이 좋다. 미리 허락을 구하는 것보다 저지른 후에 용서를 구하는 것이 쉽다. if문으로 예외 처리 문제점 오류 코드(예외를.. 더보기
[Great Minds] ebs + 교육부 + K-MOOC 합작품 위대한 수업 그레이트 마인즈 수신료의 가치를 더하고 더하고 더하여 더 주고 싶은 다큐를 만든 EBS 한국의 공연방송에서 전세계의 석학들을 모아서 강연을 만들었다는것에 놀라움을 금치 못하겠다. 지친 나의 머리를...다시 보기 하믄서 뇌를 말랑말랑하게 만들어야징. https://home.ebs.co.kr/greatminds/replay/2/list?courseId=40023168&stepId=60023845 위대한 수업 그레이트 마인즈 | TV - 교육의 중심 EBS home.ebs.co.kr 댄 애리얼리 돈의 심리학 - 행동경제학의 석학 - , 저술 리처드 니스벳 의식과 지성의 본질 - 동·서양 차이를 과학적으로 분석한 사회심리학의 석학 - , 저술 피터 싱어 돼지를 위한 철학 - 채식주의 철학자이며 동물 윤리학자 - , 저술 로버트.. 더보기
[Computer Science] 변수설계 - 지역변수와 전역변수 변수이름설정, 변수활용도에 따른 변수설계가 중요하다. 지역변수 : 해당 변수가 포함된 함수 안에서만 수정하고, 읽을 수 있다. 지역변수는 이름이 같더라도, 소속된 함수가 다르면 다른 변수로 취급 지역변수는 함수만의 것: 각 함수가 호출되어 실행될 때 만들어지고, 함수의 실행이 끝나면 모두 삭제된다. 전역변수(global variable) : 하나의 파이썬 파일전체에서 값을 읽을 수 있다. 되도록이면 함수 안에서 사이드이펙트 및 가독성을 위해 값을 수정하지 않도록 한다. 전역변수는 어디에서나 읽을 수 있지만, 함수 안에서 전역변수에 새로운 값을 대입하는 것은 금지된다. global 문을 사용하면 예외적으로 가능해진다. global 전역변수(global global variable) : 일반 전역변수와 다른.. 더보기
[Computer Science] 컴프리헨션(comprehension) Comprehension 실제 프로그래밍에서 한 줄로 파이썬 기능을 구현할 수 있는 기능이다. 장점: 코드 간소화를 위해 사용, 직관적이며 빠른 속도 단점: 조건이 복잡해 지는 경우 직관성 떨어지고, 메모리 사용량이 증가 하여 사용 어려움 리스트 컴프리헨션 예제 1 리스트속의 숫자를 제곱한 값을 리스트로 도출시키기 '''일반 for문 ''' numbers = [1, 2, 3, 4] squares = [] for n in numbers: squares.append(n**2) print(squares) ''' Comprehension 사용 ''' numbers = [1, 2, 3, 4] squares = [n**2 for n in numbers] #리스트 안에 for문을 축약해 작성함. print(squar.. 더보기
[Computer Science] OOP 개념을 활용하여 코드설계 단계별로 코드설계를 진행한다. 코드설계를 진행하는데 앞서, 바로 소스코드를 작성하지 않고 그림과 글을 통해 자신의 방법으로 코드블록을 구성해본다. 1단계 코드 설계 시 사용할 object부터 적어보자. Users Customers Vendors Admin Products Purchases 2단계 코드 작성 전, 각 object별로 요구되는 속성과 어떤 기능을 위해 생성되었는지 설계한다. Users Attributes(속성) 이름 사용자가 관리자인지? Customers Attributes 이름 구매목록 Vendors Attributes 이름 상품목록 Admin 이름 사용자가 관리자임을 나타내는 구분값 Products Attributes 이름 가격 공급업체 Purchases Attributes 제품 고객 가.. 더보기
[Computer Science] 파이썬 with OOP(Object-Oriented Programming) OOP(Object-Oriented Programming) 최소비용으로 최대효율을 지향하며. 세상에 있는 실체가 있는 모든 물체를 클래스와 인스턴스, 함수, 변수라는 object로 변화시켜서 프로그램을 구성. 기본 전제는 기능(함수, 변수) 재사용이 가능한 설계 및 프로그래밍. 기본 개념 설계(사람이 이해하는 방식)와 구현할 소스코드(컴퓨터가 이해하는 방식) 간의 상호이해가 중요하다. HW&SW 성능증가 (CPU성능 증가, 소프트웨어 다중실행) 덕분에 OOP의 모든 기능을 활용할 필요는 없다. OOP의 개념을 무분별하게 활용하면 유지보수가 어려워질 수도 있기때문에 설계방향 및 서비스기능에 따라 사용해야 한다. OOP를 제대로 하는 법은 프로그래밍뿐만 아니라 다양한 도메인에서 재사용 가능한 클래스, 메소드.. 더보기