본문 바로가기

전체 글

(125)
운영체제 HDD 및 Linux의 I/O Scheduler 컴퓨터엔 보조 기억장치로 하드디스크가 있다. 최근들어 SSD도 나오고, 상위호환으로 NVMe SSD도 나오는 추세이지만 아직까지 HDD도 많이 쓰이고 있다. HDD에 저장된 데이터를 읽는 방식은 마치 옛날 영화에 나오는 레코드판 음악 장치를 보는 것과 비슷하다. spindle이 회전판인 platter를 제어하여 디스크 헤드가 track을 읽을 수 있도록 조절한다. 그렇다면 디스크의 대략적인 성능도 표현해보자 크게 seek, rotation, transfer로 구분된다. seek time 디스크 헤드를 조절하여 목표 sector의 track을 읽는데 걸리는 시간 rotation delay platter를 회전하여 디스크 헤드가 목표 sector까지 도달하도록 하는데 걸리는 시간 transfer time 디..
Django Inspectdb 기능 legacy DB를 장고 서버에서 사용해야 할 상황이 생겼다. 그런데, 장고에서는 DB에 접근하기 위해 모델을 사용하기 때문에 DB 테이블을 모델로 바꿔야 하는 작업이 필요하다. 하지만 장고에서 고맙게도 이런 기능을 지원해준다. 공식문서 링크 : docs.djangoproject.com/en/3.1/howto/legacy-databases/ Integrating Django with a legacy database | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donat..
9252 LCS2 이전 글에서 LCS 방법을 살펴보았다. 이번에는 LCS의 길이뿐만 아니라, LCS를 출력해보기로 한다. LCS를 출력하기 위해선 현재 값을 갱신할 때, 이전의 어느 값에서 가져온건지를 알아야 한다. 즉, 가져오는 값을 추적할 수 있어야 한다. LCS의 분기문을 다음과 같이 구현했었다. if x[i] == y[j]: dp[i][j] = dp[i - 1][j - 1] + 1 else: dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) 그런데, 위의 점화식엔 두 가지 문제가 있다. 테이블에 값을 넣을 때, 어느 방향에서 온 값인지 알 수 없다. 문자 비교 결과가 다를 때, else 분기문에서 위쪽의 값인지 왼쪽의 값인지 알 수 없다. 각각의 문제는 다음과 같이 생각해볼 수 있다. L..