본문 바로가기

CS study

(47)
가볍게 알아보는 인덱스와 성능에 대해(개선예정) 인덱스? DataBase 분야에서 Table에 대한 동작 속도를 높여주는 자료구조. 마치 책갈피처럼, 인덱스를 설정하면 빠르게 색인을 할 수 있도록 도와준다. 인덱스의 구조 key, file, data에 맞추어 세개의 종류가 존재한다고 한다. 1. Clustered Index 대표적으로 PK 인덱스가 있다. 2. NonClustered Index 일반적인 인덱스를 지칭하며, 여러 개를 지정할 수 있다. 하지만 클러스터와 달리 줄을 세우는 느낌은 아니다. 실습(Clustered Index) alter table TBL_CODE add primary key(CODE) PK 테이블을 설정할 경우 CODE에 따라 자동 정렬된다. 클러스터드 인덱스의 특징인 줄세우기가 바로 나타남을 확인할 수 있다. 실습(Nonc..
1주차 스터디 노트 면접 예상 질문 1. 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 답변 - 운영체제는 컴퓨터 시스템이 동작할 때, 이들 자원을 적절하게 사용할 수 있는 방법을 제공한다. - 컴퓨터 하드웨어와 사용자 간의 인터페이스 역할을 하는 시스템 소프트웨어이다. 이는 현대의 정부와 유사하다. 정부 자체로는 유용한 기능을 제공하지 않지만, 유용한 작업을 할 수 있는 환경을 만드는 것이다. - 역할 1. 메모리 자원을 관리한다. (하드웨어 자원을 관리) 실행할 프로그램을 메모리에 적재하고, 실행되지 않는 프로그램을 메모리에서 삭제한다. CPU, 메모리, 입출력 장치 등 컴퓨터 자원을 효율적으로 관리하고 할당한다. - 역할 2. CPU 자원을 할당하여 프로그램들이 올바르게 실행되도록 관리한다. 이는 메모리에 ..
스터디 시작 개요 본격적으로 프로젝트 이후 오후 시간에 CS를 학습하려고 한다. 지금까지는 동기생들, 주변 스터디 팀원들과 알음알음 질의응답식으로 예상 문제를 던져주는 것에 그쳤지만, 이번 스터디 참여를 계기로 면접을 위한 지식이 아닌 개발을 위해 필요한 지식적 기반을 쌓고자 한다. 일정 주차별 핵심 소재를 필두로 원리를 학습하고, 예상 질문을 서로 질의해보며 기반을 다질 것이다! https://jscode.notion.site/CS-e7a5eef418f24e83842b331803c34458 모의면접으로 학습하는 컴퓨터공학(CS) 스터디 📋 스터디 개요 jscode.notion.site
인터셉터(Interceptor)란? 인터셉터. 수업을 수강하며 들었었던 개념이지만, 문득 어디에 쓰이고 어떻게 사용하는지는 알아야 될 것 같아 찾아보고 글을 쓴다. 이게 뭔데요? 인터셉터는 스프링 프레임워크에서 HTTP 요청을 가로채거나 수정, 추가 작업을 할 수 있는 구성 요소다. 이 얘기는 해당 스프링 서버로 들어오는 HTTP 요청에서 로직보다 앞세워 무언가 선행 조치를 취할 수 있다는 말이다. 내가 짠 코드보다 앞서서 전처리를 하거나.. 그렇기에 관리자 인증 등의 예시가 나왔던 것이 이해가 된다. 인터셉터는 MVC 패턴에서 Controller로 가기 전, 후에 작동해서 웹 애플리케이션의 전반적인 동작을 관리한다. Filter랑 뭐가 달라요? 필터 역시도 앞서 말했던 것처럼, 유사한 역할을 수행한다. 다만 가장 큰 차이점은 생성 위치와..
[Java] 인터페이스와 추상 메서드, 일반 메서드 추상클래스가 생긴 이유가 뭘까? 추상 클래스는 자체적으로 인스턴스로 구현할 수 없다. = 인스턴스로 구현하고 싶다면 하위 클래스가 상속(extend) 추상적인 부분을 Override로 구현해야 한다! 상속을 받는데, 내 하위 클래스가 이 기능(메서드)를 가지게 하고 싶다. 근데 무슨 기능인지는 잘 모르지만.. 어쨌든 구현해야 한다!! 아마도 일반 메서드와 가장 큰 차이라고 생각한다. 그럼 구현하지도 못할 메서드를 도대체 왜 사용하는 걸까? 추상 클래스가 있는 이유는 여러 가지다. 공통 로직 중복 제거 상속을 받는 하위 클래스들이 공통으로 사용하는 로직이나 속성을 한 곳에서 관리할 수 있다. = 추상 메서드를 상속받는 하위 클래스들은, 추상클래스의 메서드를 공통으로 가지게 된다. 템플릿 제공 추상 클래스에..
프로세스 태스크, 쓰레드, 가상화에 대해 레퍼런스 https://www.youtube.com/watch?v=xewZYX1e5R8&ab_channel=널널한개발자TV (프로세스) https://www.youtube.com/watch?v=x-Lp-h_pf9Q&ab_channel=널널한개발자TV (프로세스 쓰레드의 차이) 프로세스와 태스크 프로세스와 태스크(task)는 운영체제에서 실행되는 프로그램 또는 작업 단위를 나타내지만, 이 두 용어는 약간 다른 의미로 사용된다. 프로세스: 실행 중인 프로그램의 인스턴스로, 메모리, CPU 시간, 입출력 등의 자원을 필요로 한다. 프로세스는 독립적인 메모리 공간을 가지며, 프로세스 간에는 직접적인 메모리 접근이 일반적으로 허용되지 않는다. 태스크(task): 작업의 단위로 사용되며, 특히 실시간 시스템이나 임..
가상 메모리 가상 메모리 가상 메모리는 프로그램이 물리 메모리(RAM)의 크기를 초과하더라도 실행될 수 있게 하는 기술이다. 이는 물리 메모리와 하드 디스크의 일부를 함께 사용하여 일종의 '가상의 메모리 공간'을 만드는 것을 의미한다. 가상 주소와 물리 주소: 프로그램이 메모리에 접근할 때 사용하는 주소는 가상 주소다. 이 가상 주소는 물리 메모리의 실제 주소로 맵핑되어야 실제로 메모리에 접근할 수 있다. 페이징: 가상 메모리는 페이지라는 단위로 나뉜다. 물리 메모리도 마찬가지로 페이지 단위로 관리된다. 가상 주소의 페이지는 필요에 따라 물리 메모리의 페이지에 로딩되거나 하드 디스크의 '스왑 공간'으로 이동한다. 페이지 테이블: 가상 주소와 물리 주소의 맵핑 정보를 저장하는 데이터 구조다. CPU나 운영체제는 페이지..