본문 바로가기
728x90
반응형
SMALL

Programming157

[Algorithm] 레거시 (Legacy) 레거시 (Legacy) 레거시 시스템은 낡은 기술이나 방법론, 컴퓨터 시스템, 소프트웨어 등을 말한다. 이는 현대까지도 남아 쓰이는 기술을 부르는 말일 수도 있지만, 더 이상 쓰이지 않더라도 현대의 기술에 영향을 주는 경우도 포함한다. 현재 사용되고 있는 소스 코드보다 더욱 효율적인 소스 코드가 개발되었다고 할 때, 해당 프로그램의 다음 업데이트 버전에서는 프로그램 효율성 증가를 위해 새로 개발된 소스 코드를 사용한다. 그러나 이를 위해 기존의 소스 코드를 모두 삭제하거나 수정해 버리면, 기존 프로그램을 이용해왔던 사람들이 순식간에 해당 프로그램을 사용하지 못하게 되는 사태가 일어난다. 온라인 게임이나 온라인 연동 모바일 앱에서는 강제 업데이트를 통해 해결하지만, 온라인 연동 없이 오프라인 환경에서 사용.. 2023. 7. 6.
[Algorithm] 휴리스틱 (Heuristics) (2) 휴리스틱이 사용되는 이유 휴리스틱은 일반적으로 다음 다섯 가지 조건 중 하나가 충족될 때 발생한다 (Pratkanis, 1989). 너무 많은 정보에 직면했을 때 결정을 내릴 시간이 제한적일 때 내려야 할 결정이 중요하지 않을 때 결정을 내리는 데 사용할 정보가 거의 없을 때 적절한 휴리스틱이 동시에 떠오를 때 휴리스틱을 공부할 때 응용 프로그램의 이점과 피할 수 없는 단점을 모두 염두해야 한다. 인간 사회에서 이러한 기술의 편재성은 그러한 약점을 특히 평가할 가치가 있게 만든다. 보다 구체적으로, 의사 결정 프로세스를 촉진하는 데 있어 휴리스틱은 또한 많은 인지 편향에 노출시킨다. 인지 편향은 비논리적인 인지 패턴에서 파생된 부정확하지만 만연한 판단이다. 간단히 말해서 인지 편향은 주관적인 인식을 신뢰.. 2023. 6. 21.
[Algorithm] 휴리스틱 (Heuristics) (1) 휴리스틱 (Heuristics) 문제를 해결하거나 불확실한 사항에 대해 판단을 내릴 필요가 있지만, 명확한 실마리가 없을 경우에 사용하는 편의적 발견적인 방법이다. 다른 말로 표현하면 쉬운 방법, 간편법, 발견법, 어림셈 (어림짐작)이라고 말할 수 있다. 휴리스틱은 솔루션에 빠르게 도달하기 위해 인간이 정기적으로 의존하는 일반적인 인지 프레임워크로 생각할 수 있다. Kahneman의 의사 결정 이론 심리학자 Daniel Kahneman이 인지 문제 해결에 대한 엄청난 공헌은 특별한 관심을 받을 만하다. Kahneman은 자신의 이론에 대한 맥락으로 개인이 매일 약 35,000번의 결정을 내린다고 추정했다. 이러한 결심에 도달하기 위해 마음은 "빠른" 또는 "느린" 사고에 의존한다. 빠른 사고 경로 (시스.. 2023. 6. 21.
객체 지향 프로그래밍 (Object-Oriented Programming) 객체 지향 프로그래밍 (Object-Oriented Programming) 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 단일 책임 원칙 (Single Responsibility Principle) 단일 책임 원칙 (SRP)은 소프트웨어 설계 원칙 중 하나로, 클래스는 하나의 책임만 가져야 한다는 원칙이다. 이를 통해 유지보수성과 가독성이 향상된다. # 파일 처리를 위한 클래스 class FileHandler: def read_file(self, file_path): wi.. 2023. 6. 20.
[Python] 에러 핸들링 try-except-finally try-except-finally 블럭은 파이썬에서 예외 처리를 위해 사용되는 구문이다. try : 예외가 발생할 수 있는 코드 실행 except : try에서 예외가 발생했을 떄 실행되는 코드 포함 finally : 예외 발생 여부와 관계없이 항상 실행되는 코드, 선택적으로 사용가능 기본 예외 처리 try: # 잘못된 나눗셈 연산을 시도 result = 10 / 0 except ZeroDivisionError: print("Error: Division by zero.") # 프로그램 계속 실행 print("Program continues.") 여러 예외 처리 try: # 잘못된 입력 number = int("Not a number") except ValueError: .. 2023. 6. 20.
[Python] 패키지 (Package) 패키지 (Package) 점으로 구분된 모듈 이름을 사용하여 구성된 파이썬 모듈 및 하위 패키지의 모음이다. 함수들이 뭉쳐진 하나의 .py 파일 안에 이루어진 것을 모듈이라고 한다. 여러 개의 모듈을 그룹화하면 패키지가 된다. 패키지는 종종 라이브러리라고도 불린다. 단순히 __init__.py 라는 특별한 파일이 포함된 디렉토리이다. __init__.py __init__.py 파일은 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 한다. Python 3.3부터는 init파일이 없어도 패키지로 인식하지만 하위 버전 호환을 위해 생성하는 것이 안전하다. 패키지 관련 설정이나 초기화 코드를 포함할 수 있다. /App/__init__.py print("version: 1.0") # main.py import .. 2023. 6. 20.
[Python] 디렉토리 (Directory) (2) 디렉토리 이름 변경 rename() 메서드를 사용하여 기존 디렉토리의 이름을 변경한다. os.rename('old_directory_name', 'new_directory_name') 디렉토리 제거 rmdir() 메서드를 사용하여 디렉토리를 제거한다. os.rmdir('directory_to_remove') 디렉토리 재귀적으로 제거 removedirs() 메서드를 사용하여 디렉토리와 그 내용을 재귀적으로 제거한다. os.removedirs('parent_directory/child_directory') 디렉토리 반복 walk() 메서드를 사용하여 디렉토리와 그 하위 디렉토리를 반복한다. 이 함수는 지정된 디렉토리에서 찾은 디렉토리 경로와 디렉토리 이름 및 파일 이름을 포함하는 이터레이터를 반환한다. fo.. 2023. 6. 20.
[Python] 디렉토리 (Directory) (1) 디렉토리 (Directory) 디렉토리는 컴퓨팅에서 파일을 분류하기 위해 사용하는 이름 공간이다. 파일 시스템 안에서 파일과 다른 하부 디렉토리들로 구성된다. 수많은 컴퓨터에서 디렉토리는 폴더 또는 카탈로그라고도 한다. os 모듈 import os 현재 작업 디렉토리 확인 getcwd() 메서드를 사용하여 현재 작업 디렉토리를 확인한다. 출력 결과는 절대 경로이다. current_directory = os.getcwd() print(current_directory) 새 디렉토리 생성 mkdir() 메서드를 사용하여 현재 작업 디렉토리에 새 디렉토리를 생성한다. os.mkdir('new_directory') # 디렉토리가 없을 때 생성하도록 directory = 'new_directory' if not o.. 2023. 6. 20.
[Python] 파일 위치 이동 및 확인 (2) with 문을 사용한 파일 관리 with 문을 사용하여 파일을 열고 내용을 읽은 다음 출력한다. with open('example.txt', 'r') as file_object: content = file_object.read() print(content) 파일에 여러 줄 쓰기 파이썬 코드를 작성하여 여러 줄을 포함하는 문자열을 텍스트 파일에 쓴다. # 파일 열기 file_object = open('multiline_example.txt', 'w') # 여러 줄의 문자열 content = """This is a multiline string. Python is a versatile language. It is easy to learn and use.""" # 파일에 내용 쓰기 file_object.wri.. 2023. 6. 20.
[Python] 파일 위치 이동 및 확인 (1) 파일 포인터와 블로킹 파일 포인터는 파일에서 현재 읽거나 쓰는 위치를 가리키는 것이며, tell() 메서드로 현재 위치를 확인하고 seek() 메서드로 위치를 변경 가능하다. 블로킹 (blocking)은 일반적으로 입출력 작업이 완료될 때까지 해당 작업이 완료될 때까지 다음 코드 실행을 차단하는 것을 의미이다. 예를 들어, 파일을 읽는 작업을 수행할 때, 파일의 끝까지 읽을 때까지 해당 작업이 완료되기 전까지 다음 코드가 실행되지 않고 대기하게 된다. tell() 파일 포인터의 현재 위치를 반환한다. file_object = open('example.txt', 'r') position = file_object.tell() print("Current position:", position) file_obje.. 2023. 6. 19.
728x90
반응형
LIST