전체 글153 CPU Scheduling 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로그램이 실행되면 위와 같은 사진처럼 실행되게 됩니다. load store, add store는 CPU를 실행시키다가 중간에 오래걸리는 작업(파일 읽기)일 때는 wait을 하고 다시 CPU를 사용하고 ... 결국 CPU를 사용하는 단계와 I/O를 하는 단계를 연속적으로 일어나게 됩니다. CPU만 사용하는 단계를 CPU burst라 부르고, I/O 를 사용하는 단계를 I/O burst라고 합니다. 프로그램의 종류에 따라 빈도는 달라진다. 보통 애플리케이션들은 이 빈도가 많다. -> 데이터를 읽어와 화면 출력을 반복하기 때문에. 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 I/O-bound process CPU를 잡고 계산하는 .. CS/운영체제 2023. 10. 20. Hash Table 자료구조 Hash Table은 어떤 자료 구조인가요? 위와 같은 질문을 받았을때 핵심 답변은 아래와 같다고 생각한다. hash table은 빠른 탐색을 위한 자료구조로써 key - value 쌍의 데이터를 입력받는다. hash 함수 h에 키값을 입력으로 넣음으로써 얻은 해쉬값 h(k)를 위치로 지정하여 key - value 데이터 쌍을 저장한다. 저장, 삭제, 검색의 시간 복잡도는 모드 O(1)이다. 직접 주소화 방법 직접 주소화 방법은 키값을 인덱스의 번호로 저장하는 방식입니다. 예를 들면 1 - 김지수, 2 - 홍길동, 5 - 강감찬 이런식일때 1번 인덱스, 2번 인덱스, 5번 인덱스 이렇게 저장되므로 중간에 불필요한 저장공간을 사용하게 됩니다. 그렇기 때문에 key - value 데이터 쌍을 저장하기 위한 .. CS/자료구조 2023. 10. 19. JPA 에서 Where In 절 대신 array_contains를 사용하는 이유 글을 작성한 이유 통합 테스트를 작성하던중 만난 지금까지 와는 다른 SQL 구문에 대해서 궁금점이 생겨서 글을 작성하게 되었습니다. https://github.com/jisu3316/Board-Project GitHub - jisu3316/Board-Project Contribute to jisu3316/Board-Project development by creating an account on GitHub. github.com 도메인 구조는 Post : Like = 1 : N 으로 게시글과 좋아요는 1 대 N으로 정의되어있습니다. @Entity @Where(clause = "deleted = 'N'") @DynamicInsert @DynamicUpdate public class Post extends .. JPA 2023. 10. 17. Array, Linked List Array와 Linked List의 큰 차이점은 메모리에 저장되는 방식과 이에 따른 조회 및 삭제의 연산속도이다. Array란? Array는 연관된 데이터를 메모리상에 연속적이며 순차적으로 미리 할당된 크기만큼 저장하는 자료구조이다. Array의 특징 고정된 저장 공간 순차적인 데이터 저장 Array의 장점은 조회와 마지막 인덱스에 추가가 빠르다. 따라서 조회를 자주 해야되는 작업에서는 Array 자료구조를 많이 사용한다. Linked List란? Linked List는 Node라는 구조체로 이루어져 있다. Node는 데이터 값과 다음 Node의 주소를 저장한다. Linked List는 물리적인 메모리에서는 비연속적으로 저장되지만 Linked List를 구성하는 각각의 노드가 다음 노드의 주소를 가리킴으.. CS/자료구조 2023. 9. 14. 프로세스 관리 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로세스 생성 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식을 공존하며 수행되는 모델 자식이 종료(terminate)될 때 까지 부모가 기다리는(wait) 모델 주소공간(Address space) 자식은 부모의 공간을 복사함(binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 fork() 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사(OS data except PID + bina.. CS/운영체제 2023. 8. 27. 프로세스 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로세스 개념 Process is a program in execution 즉, 실행 중인 프로그램을 의미합니다. 프로세스의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 하드웨어 문맥 Program Counter 각종 register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB(Process Cotrol Block) Kenel stack 우리가 프로그램을 실행시키면 프로세스 A의 주소공간에 stack, data, code 메모리가 있습니다. 현재 프로세스의 함수를 실행시켜 스택에 쌓여있고, 변수들의 값이 얼마이고 레지스터의 값을 넣고 어디까지 실행했는가 이런것들이 현재 프로세스의 상태를.. CS/운영체제 2023. 8. 8. 컴퓨터 시스템 구조 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 보통 컴퓨터 시스템 구조라 하면 CPU, Memory를 말합니다. 그리고 I/O 디바이스로 구성되어 있습니다. 컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리와 컴퓨터 외부 I/O 장치(입출력 장치)인 디스크, 키보드, 마우스 등으로 구분된다. 컴퓨터는 외부의 I/O 장치(키보드 등등)에서 Input을 받아와 데이터를 처리한 뒤, 그 결과를 output 하는 방식으로 일을 처리합니다. 인터럽트 - interrupt 인터럽트란 CPU가 일을 하는 도중에 I/O 장치등에 의해서 먼저 처리를 해야 되는 상황을 말합니다. 인터럽트 당한 시점의 레지스터와 프로그램 카운터를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다. interrupt :.. CS/운영체제 2023. 8. 2. 운영체제란 무엇인가? 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 운영체제(Operating System, OS)란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층. 협의의 운영체제 : 커널 광의의 운영체제 : 커널뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서(CPU), 기억장치(Memory), 입출력 장치(IO) 의 효율적 관리 -> 하드웨어의 자원 프로세스, 파일, 메시지 등을 관리 -> 소프트웨어의 자원 운영체제의 분류 운영체제는 크게 3가지로 분류 할 수있습니다. 동시 작업 가능 여부 사용자의 수 처리 방식 동시 작업 여부 단일 작업 - 한 번에 하나의 작업만 처리(MS-.. CS/운영체제 2023. 8. 2. @AllArgsConstructor를 지양해야 하는 이유 현재 넥스트 스텝에서 ATDD, 클린 코드 with Spring 강의를 수강하고 있습니다. 1주 차 미션 구현중 예외 코드를 정의한 부분에 대해서 리뷰어님께서 @AllArgsConstructor를 지양하신다고 코멘트를 주셨습니다. 그래서 이번 글은 @AllArgsConstructor 에 대해서 알아보고 사용법, 장점, 단점을 설명하고자 글을 작성합니다. @AllArgsConstructor @AllArgsConstructor는 롬복에 포함되어 있는 어노테이션으로 모든 멤버 변수에 대한 생성자를 자동으로 생성해 주는 어노테이션입니다. 사용법 build.gradle // lomnok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.project.. Java 2023. 8. 2. MySQL - 락과 격리 수준 트랜잭션은 하나의 논리적인 작업에 대해서 몇 개의 쿼리가 실행되든 관계없이 논리적인 작업 자체가 100% 적용되거나(COMMIT을 실행했을 때) 아무것도 적용되지 않아야 (ROLLBACK 또는 트랜잭션을 ROLLBACK 시키는 오류가 발생했을 때) 함을 보장해 주는 것이다. MySQL에서의 잠금은 테이블 데이터 동기화를 위한 데이블 락 이외에도 테이블의 구조를 잠그는 메타데이터 락, 그리고 사용자의 필요에 맞게 사용할 수 있는 네임드 락이라는 잠금 기능을 제공한다. 글로벌락 글로벌락은 FLUSH TABLES WITH READ LOCK 명령으로 획득할 수 있으며 제공하는 잠금 가운데 가장 범위가 크다. 일단 한 세션에서 글로벌 락을 획득하면 다른 세션에서 SELECT를 제외한 DDL문장이나 DML문장을 실.. DB 2023. 7. 28. QueryDSL 다중 DB 설정하기 개발 환경 Java 17 spring boot 3.1.1 h2database PrimaryDatasource @Configuration @EnableJpaRepositories( entityManagerFactoryRef = "primaryEntityManager", transactionManagerRef = "primaryTransactionManager", basePackages = "com.example.multiplebeans.repository.primary" ) public class PrimaryDatasource { @Bean @ConfigurationProperties("spring.datasource.hikari.primary") // 외부 설정을 주입 받는 객체라는 뜻이다. publi.. Spring Boot 2023. 6. 27. [AWS] IAM 이란? IAM Identity and Access Management 의 약자이자 유저를 관리하고 접근 레벨 및 권한에 대한 관리를 가능하게 해주며 크게 다음과 같은 일을 한다. 접근 키(Access Key) 와 비밀키(Secret Access Key) 매우 세밀한 접근 권한 부여 기능(Granular Permission) 비밀번호를 수시로 변경 가능케 해줌 Multi-Factor Authentiocation(다중 인증 ) 가능 접근 키(Access Key) 와 비밀키(Secret Access Key) 새로운 AWS 계정을 만들면 그 유저는 루트 유저가 된다. 그 루트 유저 안에서 다른 유저를 생성 가능하다. 만약 유저 A를 만들었다고 가정하면 IAM은 A라는 유저에 대해 접근 키(Access Key) 와 비밀.. AWS 2023. 5. 13. 이전 1 2 3 4 5 6 ··· 13 다음