분류 전체보기306 알고리즘 5 해시 테이블 해시테이블- 데이터의 해시값을 테이블 내 주소로 이용하는 탐색 알고리즘 예 ) 엄청 크기가 큰 배열 -> 주소 다수 / 특정 데이터를 조회하는 시나리오에서-> 통상적으로, 순차탐색 / 이진탐색 등 사용 -> 시간 오래 걸림조회하고자 하는 데이터를 해시함수를 통해 바로 테이블 내 주소값으로 그라운딩 ex) 123817을 조회하고자 할 때, 123817 해싱 -> 3819 얻음해시테이블 Table[3819] = 123817 해시함수 나눗셈법 ; 주소 = 입력값 % 테이블 크기 -> 테이블 안의 범위에 그라운딩 되는 걸 보장 자릿수접기 ; 숫자의 각 자릿수를 더해 해시값을 만드는 것 - 한계 : 나머지 값이 같은 경우, 충돌이 일어날 가능성 - 클러스터링 ; 일부 지역 주소들을 집중적으로 반환하여 한 곳.. 2025. 2. 22. 알고리즘 4 우선순위 큐와 힙 우선순위 큐 ; 큐의 각 요소가 우선순위를 갖는 큐 -> 삽입 시, 우선순위에 맞게 큐가 다시 정렬된다-> 제거 시, 가장 앞의 노드가 제거된다 힙 ; * 여기서 힙은 힙 순서 속성을 만족하는 이진 트리를 말하는 것으로, 프로그래밍 언어에서 말하는 자유저장소 힙이 아니다 힙순서속성; 트리 내의 모든 노드가 부모 노드보다 큰 완전 이진트리 * 힙은 단순히 힙순서속성만 만족하므로 이진트리+이진트리탐색을지원하지않는다 * 힙의 존재가치는 루트 노드가 항상 최솟값 노드라는 점! 힙의 두 가지 연산1. 새 노드 삽입- 완전이진트리를 만족하는 가장 낮은 곳으로 새 노드 삽입 판단 - 부모노드와 비교 - 부모보다 우선순위 높을 경우, 부모와 교환 -> 반복 2. 최솟값 삭제 - 최솟값 삭제 = 루트 노드 삭제 .. 2025. 2. 22. 운영체제 1 메모리 영역 커널영역(운영체제) + 사용자영역(프로그램 ) 운영체제 역할 ; 시스템 자원을 프로그램에 할당 - 커널 + 사용자인터페이스 2가지 역할을 담당한다 이중모드 ; 사용자모드 / 커널 모드로 구분하여 운영체제 역할이 구분됨 - 사용자 모드 ; 운영체제 서비스를 제공받을 수 ㅇ벗는 실행 모드 - 커널 모드 ; 운영체제 서비스를 제공 받을 수 있는 실행 모드 - 시스템 호출 ; 사용자 모드로 실행되는 프로그램이 커널모드 전환할 때 -> 소프트웨어 인터럽트 일종 운영체제 핵심 서비스 1 프로세스 관리 2 자원 접근 및 할당 3 파일 시스템 관리 2025. 2. 21. 컴퓨터 구조 8 입출력장치 장치 컨트롤러 ; 입출력 장치를 다루기 위한 제어기 - 입출력장치는 종류가 너무 많고 / 전송률이 CPU 대비 너무 낮기 때문 - 전송률 ; 데이터를 얼마나 빨리 교환하는 지 - 입출력 제어기 / 입출력 모듈 등으로 불림 장치 컨트롤러 역할 1 CPU-입출력 장치 간의 통신 중개 2 오류 검출 3 데이터 버퍼링 ; CPU와 장치 사이의 데이터를 버퍼에 임시저장하여 전송률을 맞추는 방법 장치 컨트롤러 레지스터 - 데이터 레지스터 ; 버퍼 역할 / 데이터가 많은 입출력장치는 RAM을 쓰기도 함 - 상태 레지스터 ; 작업 할 준비가 되었는지 / 작업이 완료되었는지 / 오류 있는지 상태 정보 저장 - 제어 레지스터 ; 입출력 장치가 수행할 제어 정보와 명령을 저장 장치 드라이버 ; 장치 컨트롤러의 동.. 2025. 2. 19. 컴퓨터 구조 7 보조기억장치 하드디스크의 구성품 ; 자기적인 방식으로 데이터를 저장 - 플래터 ; 데이터가 실질적으로 저장되는 동그란 원판 - 스핀들 ; 플래터를 회전시키는 구성 요소 - 헤드 ; 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 - 디스크 암 ; 헤드가 부착되어 원하는 장소로 이동시키는 구성 요소 하드디스크의 구조트랙 ; 플래터를 동심원으로 나눴을 때 그 중 하나 섹터 ; 트랙의 조각 중 하나 / 보통 512바이트~ 4096바이트도 있음 실린더 ; 같은 트랙을 가진 플래터들 -> 연속된 정보를 실린더에 저장 -> 디스크암을 움직이지 않고 읽을 수 있음 탐색시간 ; 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전지연 ; 헤드가 있는 곳으로 플래터를 회전시켜서 섹터와 헤드가 만나기까지 시간 전송시간.. 2025. 2. 17. 랜턴의 서비스 기획 이야기 14 클라우드 인프라 구축 실제로는 파일럿 프로덕트가 7-8월 즈음에 나와야 했지만, 여름 동안은 보안 심사 대응하는 것만해도 벅차서, 그냥 그렇게 시간을 흘려 보내버렸다. 그래도 봄 막판에, 인프라 전문 담당자가 개발팀에 합류하고6월에는 NCP 및 MSP와 계약 협의가 순조롭게 이어졌다.개발 외적인 것들을 정리하고, MSP와 인프라 설계에 대한 간략한 미팅을 거쳤다. AWS를 그래도 상반기에 몇개월 공부를 했기 때문에,NCP 서비스 구조나, 기존에 없던 서비스가 왜 추가 되야하는지 대략적으로 이해할 수 있었다. ISMS 심사 준비 요구가 강하게 들어왔던 7-8월에는, 협력사와 어떻게 To-do 리스트를 정리할 지 깊이 토의했다. 개발 팀은 구 시스템은 보안 대응, 인프라 팀은 신 시스템 인프라 구축 개.. 2025. 2. 16. 랜턴의 서비스 기획 이야기 13 WEBGL 컨텐츠 내가 만들고 있는 웹은 크게 2가지의 유즈 케이스를 가지고 있었다.1. 전형적인 정적 컨텐츠 위주의 화면을 제공하는 경우 2. WEBGL 기반의 유저 인터랙션을 동반하는 시뮬레이션 화면을 제공하는 경우 특히, 2번의 경우는, Web+App을 만들겠다는 리더들의 염원에 의해 강력하게 이루어졌는데,이를 반대했던 나로서는 개발 과정의 중간에서라도 점검하고 싶었다. 나는 시장의 기대보다 작동하지 않을 경우를 대비하여Two Track으로 대응 방안을 수립했다.1. 컨텐츠 글로벌 사용 정책 수립 -> 글로벌 전개 시 동시 배포2. 개발 과정 중 WEBGL 컨텐츠 동시 제작 + 필드 베타 테스트 +a. 로컬에 캐싱을 지원하는 서비스 구성 1번의 대응방안은, 네트워크 불안 지역 또는 그러한 .. 2025. 2. 16. 알고리즘 3 이진탐색트리 리스트로는 이진탐색을 구현하기가 대개 어렵기 때문에,트리기반으로 데이터를 적재하고 이진탐색을 구현하는 방법이다. 탐색 자체는 리스트보다 훨씬 수월해진다. 문제는 관리 측면이다. 특히 관리 중에서도, 삭제가 그렇다. 특정 노드를 삭제하게 될 경우,삭제되는 트리의 차일드 트리의 처리를 별도로 해줘야 하기 때문이다. 1. 차일드가 없는 경우 -> 아무 문제 없다2. 차일드가 하나 있는 경우 -> 차일드를 삭제한 노드 위치에 차일드를 붙인다.3. 차일드가 둘 다 있는 경우 -> 우측 트리의 최솟값 노드를 삭제한 위치로 옮긴다 3번의 경우, 최솟값노드의 차일드 처리도 해주어야 한다.최솟값노드의 차일드는 1번째 아니면 2번째일텐데.. 2025. 2. 15. 컴퓨터 구조 6 RAM RAM의 특징 - 전원을 끄면 저장 X - 따라서, 실행할 대상을 저장 RAM 용량과 성능 - RAM 용량이 적으면, 실행할 프로그램을 자주 가져와야 -> 실행 시간이 늘어남 DRAM ; Dynamic RAM 데이터가 동적으로 사라짐 따라서, 데이터 소멸을 막기 위해서, 일정 주기로 데이터를 재활성화 필요 소비전력 비교적 낮음 / 저렴함 / 집적도가 높음 대부분의 메모리 SRAM ; Static RAM 데이터가 사라지지 않음 데이터 재활성화할 필요 없음 속도도 DRAM보다 빠름 집적도가 낮음 / 소비전력 큼 / 가격도 비쌈 SDRAM ; Synchronous DRAM 클럭 신호와 동기화됨 클럭 신호마다, CPU와 정보를 주고 받을 수 있음 DDR SDRAM ; Double Data.. 2025. 2. 15. 이전 1 2 3 4 5 6 ··· 34 다음 반응형