전체 글 77

[OS] 운영체제 Thread management

쓰레드에 대해서 알아보자. 프로세스와 쓰레드 프로세스는 자원을 할당받고, 프로세스는 자원을 제어한다. 여기서 자원의 제어를 맡는 부분이 쓰레드이다. (쓰레드는 실이란 의미로 ~로 표시한다.) 하나의 프로세스엔 여러개의 쓰레드가 존재할수 있어서, 여러개의 자원을 동시에 제어할수 있다. 쓰레드의 개념 쓰레드는 공유자원에 대해서 제어할수 있다. 싱글 쓰레드 프로세스내 쓰레드가 한개여서 공유 자원에 대해서 하나의 쓰레드로만 제어하는 것을 싱글 쓰레드라한다. 쓰레드에는 이렇게 자원을 제어할수 있는 제어정보가 존재한다. 멀티 쓰레드 프로세스 내 쓰레드가 여러개있어서 공유자원에 대해서 여러개의 쓰레드가 동시에 제어할수 있다. 이를 멀티 쓰레드라한다. 쓰레드가 프로세스의 메모리공간에 어떻게 존재하는지, 공유데이터를 어..

computer science 2021.07.20

springboot + jpa + mysql

spring boot에서 mysql을 이용해서 spring data jpa를 사용해보자아아 dependencies application.yml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:(포트번호)/(DB이름)?serverTimezone=Asia/Seoul username: (사용자이름) password: (사용자비밀번호) jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true logging.level: org.hibernate.SQL: debug mysql의 url이라던가 username, password에 ..

개발 2021.07.19

[객체지향의 사실과 오해] 2. 이상한 나라의 엘리스

아기들을 포함한 세상 사람들은 세상을 뚜렷한 경계를 가진 객체들의 집합으로 바라본다. 객체지향과 인지 능력 객체란 인간이 분명하게 인지하고 구별할수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것이다. 하지만 실세계와 소프트웨어 세계의 객체의 유사성은 여기까지이다. 실세계의 객체는 사람의 도움없이 스스로 무언가를 할 수 없다. 소프트웨어 세계의 객체는 스스로 무언가를 할수 있다. 즉, 자율적이다. 객체, 그리고 이상한 나라 이상한 나라의 엘리스 이야기를 생각하며 객체란 무엇인지 알아보자 엘리스는 음료수를 마시면 키를 변경할수 있다. -> 엘리스는 키를 가지고있으며 상태를 변경가능 음료수를 마시면 키가 변경한다 -> 엘리스는 음료수를 마시는 행동을 했고 행동을 통해서 상태가 변경 음료수 마시기전 키가 1..

study with book 2021.07.17

백준 14469(JAVA)

문제 소가 입장하는 시간을 최소로 하라! 풀이 소가 도착하는 시간을 기준으로 정렬 -> 같으면 소가 대기하는 시간을 기준으로 정렬을 한다. 그다음 걸리는 시간을 계산하면 소가 대기하는 시간을 최소, 즉 버리는 시간을 최소로 할수있다. 코드 package baekjoon.그리디; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Cow{ int arrive; int time; public Cow(int arrive, int time){ this.arrive = arrive; this.time = time; } public int getArrive..

algorithm 2021.07.17

[OS] 운영체제 Process Management

이제 OS의 기능별로 하나씩 정리할 건데, 먼저 OS가 어떻게 프로세스를 관리하는지, 프로세스란 뭔지에 대해서부터 알아보자. (OS는 시스템의 자원들을 효율적으로 관리해서 성능 향상을 높이는데 목적이 있는 소프트웨어이다.) Job vs Process Job / Program 실행 할 프로그램 + 데이터이다. 실행할 이므로 실행 요청전의 상태이다. Process 실행을 위해 커널에 등록된 Job을 의미한다. 커널에 등록된다는 의미는 OS에의해 관리를 받는 다는 것이고, 커널에 의해 관리를 받으면 효율적으로 관리를 받기에 시스템 성능 향상을 이룰수 있다. Job과 Process 실행 요청전 디스크내에 존재하는 Job을 볼수있고 오른쪽에는 시스템에 의해 관리되는, 즉 커널에 의해 관리되는 Process를 볼수..

computer science 2021.07.17

백준 11000(JAVA)

문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충한 게 찔리면, 선생님을 도와드리자! 즉, 최소의 강의실을 배정할수 있도록 하라는 문제이다. 입력은 강의실의 개수가 입력되고 그다음부터 각 강의의 시작시간과 끝시간이 입력된다. 풀이 입력되는 강의실의 개수가 최대 200,000개이다. 완전탐색으로는 시간초과가 날게 뻔하다. 일단 시작시간을 기준으로 오름차순 정렬해야한다. 시작시간이 같다면 끝나는 시간을 기준으로 ..

algorithm 2021.07.16

[객체지향의 사실과 오해] 1. 협력하는 공동체

실세계와 객체지향 세계 객체지향에 대해서 배울때, (JAVA를 처음 배울때) 모든 사물(유형이던 무형이던)을 하나의 객체로 보는 실세계를 소프트웨어의 세계와 동일하다는 관점에서 객체지향을 배웠다. 그러나 실세계와 객체지향 세계에는 유사성이 매우 적고 거리가 멀다. 객체지향의 목적은 새로운 세계를 창조하는것!!! (실세계를 모방하는 것이 아니다.) 단순히 객체지향의 기반을 이루는 철학적 개념을 설명하는데 '실세계의 모방'이라는 문장이 적합할 뿐이다. 단순히 이 이유때문에 많은 곳에서 객체지향을 설명할 때, 실세계에 빗대며 설명한다. 그래도 실세계에 빗대어 설명하는 것만큼 이해가 쉬운게 없음! 협력하는 사람들(in 실세계) 협력, 역할, 책임 실세계에서 모든 것은 협력, 역할, 책임으로 이루어..

study with book 2021.07.16