전체 글 649

[OS] 프로세스 스케줄링 ( Process Scheduling )

[OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com [OS] PCB란 무엇일까? https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코 lordofkangs.tistory.com 지난 포스팅에서 프로세스와 PCB에 대해서 다루어 보았다. Disk에 있는 프..

CS/OS 2024.01.17

[PS] BOJ18111 마인크래프트 ( 구현 ) with JAVA

18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net ◎ 문제풀이 땅을 평탄화 하는데 최소시간이 걸리는 높이와 시간을 구하는 문제이다. 요구하는 조건이 많아 처음에는 막막했지만 다시 생각해보니 쉬운 문제였다. 최고높이와 최저높이의 사이 높이 하나하나의 평탄화 시간을 구한 다음 비교하여 최소시간과 높이를 구하면 되었다. 높이도 최대 256이고 가로세로 최대 500x500이니 삼중for문을 만들어도 최대 64만번 연산한다. 그러므로 시간복잡도에 걸리지 않는다. ◎ 코드 import java.io.*; import ja..

[OS] PCB란 무엇일까?

https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com 프로세스(Process)는 CPU가 처리할 수 있도록 RAM 메모리에 할당된 프로그램의 단위이다. 프로세스는 소프트웨어로 다양하다. 그러나 하드웨어인 CPU는 한정되어 있다. 그러므로 프로세스A가 CPU를 점유하고 있으면 스케줄링 정책에 따라 프로세스B로 컨텍스트 스위칭(Context Switching)을 일으켜야 한다. 이렇듯 OS는 CPU 자..

CS/OS 2024.01.15

[OS] 프로세스(Process)란 무엇일까?

개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리어로 변환하고 어셈블러는 어셈블리어를 컴퓨터가 이해할 수 있도록 1과0 변환한 다음 링커가 동작하여 참조하는 라이브러리와 함께 엮으면 실행 가능한 파일(Excutable File)이 만들어 진다. 그리고 실행가능한 파일은 Disk에 저장된다. 이렇게 Disk에 저장된 실행가능한 파일을 두고, 우리는 프로그램(Program)이라 부른다. 그렇다면 프로세스(Process)란 무엇일까? Disk는 크기가 크고 I/O가 느려 CPU와 일할 수 없다. 그래서 CPU와 Disk 사이에는 RAM이 존재한다. D..

CS/OS 2024.01.15

[PS] Programmers - k진수에서 소수 개수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◎ 문제풀이 n = > k진수로 바꾸었을때, 구분자 0으로 구분되는 소수P의 개수를 구하는 문제이다. 이를 3가지 단계로 나누어 보았다. 1. k진수로 바꾸라. 2. 구분자 0으로 분리하라. 3. 소수 여부를 확인하라. 주의) K진수 안의 십진수를 정수로 변환할 때, Integer 범위를 넘을 수 있으므로 Long 자료형을 사용한다. ◎ 코드 import java.util.*; import jav..

[PS] Programmers - 신고 결과 받기 with JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◎ 문제풀이 신고에 대한 입력정보가 주어질 때, 신고자에게 가는 메일의 개수를 구하는 문제이다. 문제를 풀때, 두가지를 신경썼다. 1) 유저와 인덱스를 1대1로 매핑하기 위해, HashMap 자료구조를 사용하였다. 2) 신고 객체에서 신고대상의 신고자의 중복을 방지하기 위해, HashSet 자료구조를 사용하였다. ◎ 코드 import java.io.*; import java.util.*; //신고..

[PS] BOJ1205 등수 구하기 ( BinarySearch ) with JAVA

https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net ◎ 문제풀이 '비오름차순'(내림차순)으로 정렬된 점수 배열에서 새로운 점수의 랭크를 구하는 문제이다. '정렬'된 배열에서 새로운 점수의 위치를 '탐색'하는 문제이므로, 이분탐색법을 발상했다. ◎ 코드 package org.example.binarySearch; import java.io.*; import java.util.*; //BOJ1205 등수 구하기 public..

[후기] Goorm Training 쿠버네티스 과정 14회차 후기

Goorm 사에서 주관한 쿠버네티스 교육과정이 마무리 되었다. 23.09.08부터 24.01.05까지 4개월 간의 힘든 여정이었다. 결과도 좋았다. 우수 프로젝트와 우수 수료생으로 뽑혔다. 65만원 상당의 제주도 호텔 펜트하우스 1박권도 부상으로 받았다. 우리가 만든 프로젝트는 아래 링크를 참고하면 된다. Dokcer-DevLink Dokcer-DevLink has 14 repositories available. Follow their code on GitHub. github.com ( 참고로 Dokcer는 오타가 아니다 ㅎㅎ.. ) 결론부터 말하면, 4개월 동안 고통스러웠고 고통스러운 만큼 많은 성장을 하여 정말 만족스럽다. 인프라에 대한 기반지식이 없는 상태에서 쿠버네티스라는 러닝커브가 높은 기술을 ..

후기 2024.01.06

[프로젝트] 포스트서비스 에러 조치 및 매칭 서비스 구현( 2023.12.28(목) )

작업한 것 포스트이미지 MultiPart 방식에서 Base64방식으로 변경 application-kubernets.yaml에 messages 설정 추가 추천 멘토/멘티 포스트 리스트 비회원도 접근 가능하도록 조치 주소 데이터에 경도 및 위도 데이터 적용 ( KAKAO API 연동 ) 러닝타임 데이터 String -> int 로 변경 FeignClient : @RequestHeader => @RequestParam으로 변경 마무리 프론트와 연결 작업 해보니 에러는 많이 나오지만... 재미있어짐 !

[프로젝트] 멘토링 서비스 구현 마무리 ( 2023.12.27(수) )

작업한 것 - Entity ID 생성전략, SEQUENCE -> IDENTITY로 변경 - 멘토링 서비스 - 프로필 서비스 간 통신으로 스케줄 생성 구현 - 매칭 서비스 구체화 방안 회의 배운 것 [JPA-DB] SEQUENCE 전략은 Oracle DB에서 대규모 트래픽 처리에 유용한 전략이다. MySQL은 전통적으로 시퀀스를 제공하지 않으므로 IDENTITY 전략이 더 적합하다. [Git] Rebase - Merge 방식에 대한 원리 이해 Pull Request의 개념 이해 마무리 프로젝트 일주일 남았다! 개발 열심히!