전체 글 38

데이터베이스와 CRUD

Database What? 데이터의 저장소 Why? 그냥 어디서나(OS) 사용 및 전송 쉽게 가능한 file 을 사용하면 되지 않나? but ... 데이터 양이 많아지면 파일의 크기는 너무 커지고, 복잡한 데이터들의 관계를 나타내기도 쉽지 않다. 데이터를 추가, 조회 등을 하기도 어렵다. race condition 발생도 고려해야 하고... 이러한 파일의 한계를 극복한 전문 소프트웨어가 바로 database 복잡하고 어려운 데이터를 다루기 위해 고안 프로그래밍 언어로 이용 가능 -> 코드를 통해 제어, 자동화 가능 보안 기능이 강화 -> 더 안전하다 종류 Relational database (SQL) 데이터를 표의 형태로 저장 검색 혹은 정렬 등의 과정을 빠르고 편리하게 함 SQL(Structured Q..

Database 2023.08.15

[파이썬] 문자 아스키코드 구하기/알파벳 순서대로 번호 붙이기/문자<-> 숫자 바꾸기 - ord(), chr(), int(), str()

1. 문자를 아스키코드로 변환 ord() #문자 a = "A" #문자를 아스키코드로 변환 -> b = 65 b = ord(a) str 자료형에서 int 자료형으로 변환된다. 1-1. 알파벳 순서대로 번호를 붙여 사용하고 싶을 때 a = "A" b = "B" c = "C" #A = 0, B = 1, .. 이런식으로 사용할 때 자주 사용하는 형태 d = ord(a) - 65 #d = 0 e = ord(b) - 65 #e = 1 f = ord(c) - 65 #f = 2 "A"부터 "Z" 까지 순서대로 아스키코드 65 ~ 90에 대응하기 때문에 대문자의 경우 65씩 빼주면 0부터 25 소문자 "a" ~ "z"는 아스키코드 97~122 이므로 소문자 순서대로 번호를 붙이고 싶으면 97씩 빼준다 A와 a의 아스키코..

[Greedy Algorithm] 그리디 알고리즘 - 정당성 증명은 필수

오늘은 욕심쟁이 알고리즘에 대해 알아보자~ Greedy Algorithm 복잡한 문제를 쪼개서 해결한다. 쪼개진 조각들이 다 최선의 답을 가지면 전체도 최적의 해를 가지지 않을까? 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 눈앞의 이익만 우선 추구하는 알고리즘의 설계 패러다임 매 단계마다 최선의 방법만 선택하면 되기 때문에 탐색 범위가 줄어든다! 주의점 그리디 알고리즘은 각 단계에서 가장 좋은 방법만 선택하면 전체에 대한 최적해를 가진다 전제하에 정당성을 가지는 것이다. 그렇기 때문에 그리디 알고리즘을 떠올렸을 땐, 정당성을 증명하는 것이 필수!!!! 만약 최적해가 보장되지 않는 경우 그리디 알고리즘을 사용하면 망한다. 그리고 그리디 알고리즘이 최적해를 보장하는 경우는 많지 않다. 함부로 ..

Algorithms 2023.07.15

알고리즘 문제 풀 때 Runtime Error 발생시

알고리즘 문제를 풀다 보면 간혹 런타임 에러를 마주하게 된다! 런타임 에러는 프로그램 실행 중 발생한 오류이다. 프로그램 실행 중 잘못된 데이터를 가지게 되어 잘못된 처리를 진행하려 할 때 발생한다. 발생한 에러에 대해 프로그램 내에서 에러 처리를 하지 않은 경우에는 프로그램이 종료되기 때문에 치명적인 오류이다. 어떤 이유로 런타임 에러가 발생했는지 알려주는 경우도 있지만 원인을 알 수 없을 때가 많은데, 에러를 해결하려면 우선 원인을 알아야 한다. 아래 내용을 하나씩 잘 살펴보고 문제 원인을 찾아내자! 알고리즘 문제를 풀 때 Runtime Error가 발생하는 원인은 주로 다음과 같다.물론 전부는 아니다.(주 원인들은 boj/djm03178님의 글을 참고했습니다) 1. 배열에 할당된 크기를 넘어서 접근..

Algorithms 2023.07.15

[알고리즘]

코딩 테스트 준비를 위한 알고리즘 공부를 시작할 예정이다. 3학년 1학기에 컴퓨터 알고리즘 강의를 수강하였는데, 코드를 직접 작성하기보다는 알고리즘을 배우고 분석하는 것이 주된 내용이었다. 수학적으로 알고리즘의 정당성을 증명하고 시간 복잡도를 분석(증명)을 많이 했다. 이론적으로 다뤘던 알고리즘들을 복습하면서 직접 구현해보면서 문제를 많이 풀어보려고 한다! 교재는 Sara Baase, Computer Algorithms Introduction to Design and Analysis, 2nd ed

Algorithms 2023.07.15

[운영체제] 운영체제의 역사 (feat. 컴퓨터의 역사)

이 포스팅에서 다루는 내용운영체제의 역사, 컴퓨터의 역사, 배치시스템, resident monitor (상주모니터), spooling, multiprogramming 들어가며...지금의 운영체제들이 왜 이러한 모습을 갖추게 되었는지는 운영체제의 역사를 알면 더 쉽게 이해할 수 있다. 끊임없이 문제점을 보완하며 운영체제가 발전해 온 큰 흐름을 짚어본다. 운영체제 발전의 전체적인 흐름뿐만 아니라, 작은 기능 하나하나까지 어떻게 발전하게 되었는지 선배님들의 발자취를 따라오다 보면 기억에도 잘 남는다. 그리고 무엇보다 CS 공부를 하다 보면 비슷한 용어들이 계속 나오기 때문에 그 용어들이 처음에 어떻게 나오게 되었는지 알 수 있어 도움이 많이 될 것 같다. 생각해야 할 것 1. 운영체제의 역사는 세대별로 완전히..

[운영체제] 운영체제란?

이 포스팅에서 다루는 내용 운영체제의 개념, 커널 모드, 유저 모드, 추상화 들어가며... 우리가 잘 아는 윈도우, 맥 OS, 리눅스 등이 모두 운영체제이다. 운영체제가 설치되지 않은 컴퓨터를 사용하려면 굉장히 굉장히 어려울 것이다. 왜? 운영체제가 하는 일이 뭐길래? 운영체제는 컴퓨터 상에서 우리가 쓰는 웹브라우저, 워드, 카카오톡 등의 응용 프로그램과 그것을 작동시키는 프로세서, 메모리, 모니터, 키보드 등의 물리적 하드웨어 사이에서 우리가 그것들을 쉽게 사용할 수 있도록 중간자 역할을 한다고 생각할 수 있다! 운영체제가 없으면 우리는 컴퓨터 자원을 직접 다루면서 사용해야 해야 하는데 그건 불가능에 가깝다. 컴퓨터구조가 발전하고 복잡해짐에따라 컴퓨터 자원들을 효율적으로 또 편리하게 다루기 위해서 자연..

[운영체제]

3학년 1학기에 수강한 운영체제 과목을 리뷰하고 강의에서 다루지 않은 부분까지 정리를 하려고 한다. 매번 시험 직전 벼락치기로 암기하고 넘어가서 한번쯤 전체적으로 복습 겸 정리를 하고 넘어가야 할 것 같아서.. 그리고 취업 준비할 때 기술 면접도 대비하는 겸 ~ 컴퓨터과학의 꽃 🌸운영체제🌸인 만큼 확실히 내 것으로 만드는 것이 목표 교재는 ANDREW S. TANENBAUM 저 MODERN OPERATING SYSTEMS, 3rd edition + 강의 피피티, 필기 내용 등을 참고할 예정 01. 운영체제란 02. 프로세스와 스레드 03. 메모리 관리 04. 파일 시스템 05. 입출력 06. 교착상태 까지 복습하고 강의에서 다루지 않은 07. 멀티미디어 운영체제 08. 다중처리기 시스템 09. 보안 10..