Round-Robin과 Priority를 c++로 한 번 공부해 볼 것이다. Round-Robin이란? 라운드 로빈 스케줄링(Round Robin Scheduling, RR)은 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에..
다중스레드 웹 서버에서 작업을 분배받는 과정을 producer-consumer 모델로 만 들어 본다. Dispatcher thread는 작업을 worker thread들에게 배분하며, 이때 한 개의 원형 큐가 버퍼로써 사용되게 설계해..
java에서의 동기화 문제를 해결해보자! 코드를 분석해보자 public class ProducerConsumer { static final int N = 100; static producer p = new producer(); static consumer c = new consumer(); static our_mo..
생산자-소비자 문제란? 여러 개의 프로세스를 어떻게 동기화할 것인가에 관한 고전적인 문제이다. 한정 버퍼 문제(bounded-buffer problem)라고도 한다. 유한한 개수의 물건(데이터)을 임시로 보관하는 보관함(버..
Race Condition이란? 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고..
일단 실습을 해보기전에! 스레드(Thread)는 무슨 역할을 하고 무슨 기능이있는지 간단하게 살펴보겠습니다. 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일..
이번에는 프로세스 상태에 대한 공부를 해볼 것이다. 프로세스 상태는 new, ready, running, waiting, terminated로 나눠질수있습니다. 이런식의 로직을 가지고있다. 리눅스 기반에 운영체제에서 공부했습니다. r..
fork가 어떻게 프로세싱 되는지 실습을 해보았다. hello.c 파일 /* * A file executed by child process * */ #include #include int main(void) { do { printf("I'm hello. I'm alive!\n"); sleep(5); } while (1..
실습을 하기전에! 일단 fork가 무엇인지 알아보자. fork란? 컴퓨팅, 특히 유닉스 운영 체제와 유닉스 계열 환경에서 포크(fork)란 프로세스가 자기 자신을 복제하는 동작이다. 이는 일반적으로 시스템 호출..
코드를 분석하기전! system call이 무엇인지 알고 넘어가자! system call이란? 리눅스 커널과 같은 운영 체제에서 응용 프로그램의 저수준 입출력 함수가 실행되면, 해당 실시간 라이브러리 함수에 의해 소프트웨..
성능 모니터 그래프의 추이를 서술하시오 실험 1 Test1.c 실행 int main() { int i=0, sum=0; while (1) { sum += i; i += 1; } } 1. %User Time과 %Privileged Time 중 어느 쪽이 높다고 생각하는가? - %User..
문제를 같이 볼까요? www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A..
github 아이디를 입력하면 커밋한 날은 얼마나 되는지, 1년 동안 총 며칠을 커밋을 했는지 간편하게 보고 싶어 만들게 되었습니다. 순위는 아직 구현 중입니다.! 저는 home이라는 url에서 텍스트 박스에 값을 resu..
일단 같이 문제를 보겠습니다. www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든..
일단 문제를 같이 볼까요? www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1..
문제를 같이볼까요? www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나..
문제를 한번 같이 볼까요? www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,..
문제를 한번 볼까요? www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤..
일단 문제를 볼까요? www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,00..
일단 문제를 볼까요? www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기..
일단문제를볼까요? www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답..
게시글을 쓴 후 html에 게시했습니다. {{ quiz.content }} 저는 퀴즈라는 객체에 content라는 변수에 글을 저장해놓았습니다. html 화면에서 봤을 때 줄바꿈이 되지않습니다. 이것을 설정해주기위해 {{ quiz.con..
기술면접 예상질문 페이지를 구축하고 있습니다. 구축하면서, 글들을 3~5개씩 나눠서 보여줬으면 좋겠어서 사용하게되었습니다. 우선 views.py에서 3~5개씩 나눠서 리스트에 넣는 것부터해야겠죠? from django.cor..
이런 식으로 django에서 css파일을 따로 파일로 적용시켜 사용하려면 잘 따라와 주세요! 앱에 static파일을 생성해주세요 거 기안에 css파일을 넣어줍시다. settings.py에 들어가 줍니다. import os STATIC_URL =..
성능을 분석하기 위해 인간은 초와 분 같은 시간, 즉 CPU 실행 시간에 관심을 갖는다. 컴퓨터는 일정한 주기를 가진 클록 사이클을 주목한다. 프로세서의 사양을 살펴보면 클록 속도라는 것이 있다. 클록 속도 1.0..
컴퓨터 시스템의 4대 기능 1) 입력 2) 처리 3) 저장 4 출력 중앙처리 장치(CPU) 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치를 말한다. CPU와 마이크로프로세서의 차이점? CPU는 컴..
도서관에서 잠깐 방학 동안 일하게 되었습니다. 코로나 때문에 비대면으로 책을 대출해주는 서비스를 하고 있는데, 인원수 제한이 없어 몇 명 신청했는지 항상 직접 세어보기 귀찮아서 만들게 되었습니다. import..
고정된 url을 크롤링 하기위해서 찾은방법이 selenium을 사용하는 것입니다. 일단 환경세팅을 해보겠습니다. pip install selenium selenium을 일단 인스톨해줍니다. chromedriver.chromium.org/downloads Downloa..
.py 파일을 하나 생성해줍시다. import requests from bs4 import BeautifulSoup 필요한 라이브러리를 import 해줍니다. #무신사 검색어 순위 검색 url = 'https://store.musinsa.com/app/usr/search_ranking' req..
웹크롤링을 한번 공부해볼려고합니다. 저의 개발환경은 윈도우와 vscode를 이용하겠습니다. vscode를 실행시킵니다. 그러고나서 가상환경을 켜줍니다. py -m venv myvenv 저는 myvenv라는 가상환경을 만들어주었습..
일단 어느 정도 구현했으니 카카오 로그인 기능도 추가하고 싶었습니다. 완성된 페이지를 보여드리겠습니다. 이런 식으로 구현했습니다. pip install django-allauth 일단 allauth를 깔아줍시다. INSTALLED_APP..
이번시간에는 templates을 다루어보겠습니다. {% extends 'menu_bar.html' %} {% block contents %} {% load static %} {% if user.is_active %} {% for post in posts.all %} 글쓴이 : {{ post.username}} 일기..
이번 시간에는 diary앱에있는 urls.py를 고쳐보도록하겠습니다. from django.urls import path from django.contrib.auth import views as auth_views from django.conf.urls.static import static from django.co..
이번 시간에는 views.py를 사용해보겠습니다. from django.shortcuts import render ,get_object_or_404 from django.views.decorators.csrf import csrf_exempt from .models import Post from accounts.models i..
이번에는 일기를 쓸 수 있도록 기능을 구현해보겠습니다. accounts앱을 만들었던 것처럼 똑같이 py manage.py startapp mydiary 이 것을 메인 프로젝트로 shell을 옮긴뒤 생성해줍니다. urls.py도 선언해줍니다...
이번시간에는 디자인?을 다루어볼려고합니다. 제가 디자인은 잘못해서 bootstrap을 통해서 구현하려고합니다. 일단 회원가입 폼을 볼까요? {% extends 'menu_bar.html' %} {% block contents %} {%csrf_token%} Cr..
저번시간에 이어서 만들어보겠습니다. 이제 urls.py와 받을 폼을 만들었으니 views.py를 구현해야겠죠? django 내부 유저모델을 사용한다고 했으니 사용해보겠습니다. accounts/views.py에서 from django.shortcut..
여자친구랑 다이어리를 써보고싶어서 직접 만들려고합니다. 대략 두달 정도 시간을 들여 만들 프로젝트는 바로 다이어리서비스입니다. 가상 환경부터 실행해야겠죠? 안에 프로젝트에 들어가봅시다. django-admin..
카페 매출관리시스템 초안을 바탕으로 하여 제작하였습니다. MySql과 java를 통해 구현하였습니다. 메인은 화면의 구성은 심플하게 이렇게 나타냈습니다. 코드의 일부 분을 발췌해서 가져왔습니다. EmButton = ne..
String s를 생성하여 LinkedList를 통해 문자열을 뒤집어보았습니다. scanner로 받아서 사용할수도있습니다. import java.util.*; public class StringReverse { public static void main( String[] args ) { Stri..
// 3개 동아리 다하는사람 //적어도 한개 이상 동아리에 참여하는 학생 // soccer 또는 dance에 참여하지만, computer에는 참여하지 않는 학생 명단 이 3가지를 ArrayList를 사용하여 풀어봤습니다. 명단만 수정하..
HashSet을 통해서 로또번호 생성기를 만들어보았습니다. import java.util.*; public class Lotto645 { public static void main( String[] args ) { HashSet hset = new HashSet (); Random rand = new Random();..
student.java - 학생정보를 나타내는 Student 클래스를 선언한다. - Student 객체는 학생이름, 학번, 전화번호를 가진다. - toString()을 구현한다. import java.io.Serializable; public class Student implement..
JAVA에서 PUSH,POP을 이용해서 괄호의 쌍이 맞는지 확인해주는 프로그램입니다. LinkedList를 통해서 구현해보았습니다. import java.util.*; public class CheckRrace { public static void main( String[] args..
날짜를 입력하면 +1DAY를 해주는 프로그램입니다. (+추가 윤년이 계산되지않아 윤년을 계산하여 적용시켰습니다.) class Date { private int month; private int day; private int year; int[] daysPerMonth = { 0..
제목: 알람시간 클래스 (class AlarmTime) 목적 알람시간을 나타내는 클래스를 설계함으로써 생성자 오버로딩, this 레퍼런스, this() 호출, 객체의 배열생성 방법을 학습한다. AlarmTime이라는 클래스를 만들어..
main에서 찾고싶은 소수를 입력받아 seqsearch함수를 통해 몇 번째에 들어가 있는지 찾을 수 있도록 하는 것이다. prime[]은 자신이 원하는 배열을 넣으면 된다. left는 배열에 첫번째 즉, 0번쨰가되고, right는..
오늘은 파일을 불러와 이진트리에 저장하여 단어종류와 빈도수를 출력하는 알고리즘을 만들어볼 것입니다. #include #include #include #include #include #include #define MAX_NAME 100 #define MAX_WORDS 10000..
사용자가 정수를 입력하면 원형 큐에 삽입한다. 입력받은 정수가 -1이 아니면 계속 입력을 받는다. -1을 입력받으면 삽입을 멈추고 원형 큐에있는 자료를 순차적으로 삭제하여 출력한다. (즉, 원형 큐가 비게 될..
사용자로부터 5개의 숫자를 차례대로 입력받아 트리를 생성한다. (5개의 숫자는 postorder 순으로 입력) 가령, 9, 11, 5, 7, 3 이 입력된 경우, 아래와 같은 구조의 트리를 만든다. 3 / \ 5 7 / \ 9 11 각 노드..
일단 구조체를 하나 만들어준 다음 값을 받아들여 구조체에 저장한 뒤 complex_add함수에서 계산후 반환해주면 된다. 구조체의 정확한 이해가있으면 충분히 할 수 있는 문제이다. 곱셈이나 나눗셈도 똑같은 구조니..
C언어로 직접 구현해본 Link List입니다. 위에 링크는 소스가 들어간 Git주소입니다. 많은 피드백 해주시면 감사합니다. 일단 제가 구현한 소스는 학생이름,학번,점수 이렇게 꾸려보았습니다. 각 소스에 주석을 달..
fib_iter라는 함수를 만들어준다음 입력값은 값이 0이면 0을 반환해주고, 1이면 1을반환해준다. 둘다 아니면 i가 2부터 n번까지 1씩증가하면서 result, pp, p 변수에 번갈아가면서 저장해주는 구조이다. #include..
이 문제는 시간복잡도를 얼마나 효율적으로 풀수있는가를 보는 것이 관건이다. 직관적으로 풀면 import java.util.Scanner; public class Main { public static void main(String[] arg) { long min, max; long k;..
저번 시간에 헀던 순차탐색과 비슷하지만 구조가 조금 다르다. 이번에는 재귀를 사용하여 이진탐색을 구현해보았다. #include #include #include #define COMPARE(A,B) ((A)>(B))?(1):(((A)<(B))?(-1):(0)) int bi..