CS 24

[OS 공룡책] 6. Synchronization Tools

동시 접근이 일어나면 항상 발생하는 문제가data inconsistency - 일관성 문제이다 JVM에서 공부했던 내용이라 간략하게만 언급하면스레드는 메모리를 공유하기 때문에 - 정확하게는 힙 영역을 공유하기 때문에 발생한다 c언어 예시이긴 하지만sum++이 결국 sum (현재 값을 읽고->증가된 값 쓰기) 로직이니까동시에 접근하는 값이 최신 값이 아니게 되면서 정합성이 깨지기 시작한다 자바 고급1에서 너무 많이했으니 패스 Race Condition한국어로 교착상태여러개의 프로세스가 하나의 값 수정을 할때 발생하는 문제 교착상태가 발생하는 코드 구역을 ciritical section이라고 부르는데세부적으로 코드 영역을 4가지로 구분한다 여기서는 아직 락을 배우지 않았지만 언급하겠다 - entry..

CS/OS 2026.01.09

[OS 공룡책] 5. CPU Scheduling

하나의 cpu를 왜 sharing 해야하는지는 처음에 알아봤다복습해보면전제는 cpu는 굉장히 빠르기 때문에 처리량에 비해 놀고 있는 상황이고,cpu utilization 즉 사용량을 극대화 하기 위해 여러가지 프로세스를 번갈아 가며 처리하기 위함 이는 기본적으로 IO bound가 cpu bound보다 훨씬 길기 때문에 발생한다 이제 cpu를 어떤 프로세스에게 어떻게 분배할것인가? 가 스케줄링이다좀더 구체적으로 ready queue에 들어가있는 프로세스들에게 어떻게 할당할것인가? 크게 두가지가 있는데- FIFO Queue- Priority Queue 그리고 구체적인 방법론을 이해하기 위해- Preemptive 선점형- Non-preemptive 비선점형개념이 나온다 이게 말이 좀 헷갈리는데주체는 cpu ..

CS/OS 2026.01.09

[OS 공룡책] 4. Thread & Concurrency

하나의 프로그램에서도 여러가지 동작을 동시에 수행할 수 있다는 점에서 스레드가 필요하다 spring을 배우면서 그렇게 했던 스레드풀, 스택영역 등..이 이제 여기와 관련된 내용 멀티스레딩을 하면 좋은점은- Responsiveness 연속적인 응답을 가능하게 한다- Resource Sharing 스레드는 프로세스와 달리 메모리 공간을 공유하기 때문에 shared-memory나 message passing 방식보다 훨씬 쉽다 좀더 정확히는 JVM 구조 공부했을 때처럼 힙영역, 메서드 영역을 공유한다고 보면 될 것 같다. (Thread Local같은 예외도 있다)- Economy 프로세스 생성보다 훨씬 저렴하다 context swithching보다 thread switching이 o..

CS/OS 2026.01.08

[OS 공룡책] 3. Process

OS를 다 까먹어서 복습해보기로.1, 2챕터는 인트로여서 정리하지는 않겠다 프로세스 너무 많이 했다.프로세스 : 실행중인 프로그램 이제 OS가 프로세스를 관리해주야 하는데 어떻게 관리할것인가? 가 관건이다 이를 이해하기 위해 프로세스의 생명주기를 이해해야 한다 프로세스 생명주기 - NEW 프로세스가 생성된 상태- RUNNING 프로세스가 CPU를 점유해서 해당 명령어를 CPU가 처리하고 있는 상태- WAITING CPU가 다른 처리를 하고 있어서 기다리고 있는 상태 EX) 프로세스1이 running 상태일때 프로세스2가 기다리고 있는 상황 EX2) IO를 일으켜서 점유를 반납하는 상황- READY 레디큐에서 CPU 점유를 대기하고 있는 상황 EX) IO를 일으키고 ..

CS/OS 2026.01.07

[소프트웨어 공학] 12. 품질

소개품질을 높이는 활동으로 - 테스트 테스트는 코드 품질만 향상시킨다- 리뷰 이래서 extreme programming이 좋다고 하셨다. 리뷰를 많이 하니깐- 품질보증 즉 품질의 모델은(품질의 속성은) 작업 관점이 어디 있는가에 따라 달라질 수 있다. 고객 만족이 품질에 들어가 있기 때문에 요구사항을 더욱 명확하게 정해야 한다고 하셨다. 요구 사항을 잘 검토 하는것 자체가 품질 관리에 들어가 있다. 구체적인 설명이 필요한 속성들만 적어보면 효율성- 성능이 좋지 않은 cpu와 적은 메모리로도 돌아가는가재사용성- 품질이 구조적인가 그동안 배웠던 결합도, 응집도, 디자인 패턴의 적용 유무 등 품질 특성 위에 있는 항목은 각각- 품질 요소 : 사용자에 의한 외부 관점- 품질 ..

[소프트웨어 공학] 10. 테스팅 추가

검토, 확인 개정판에서 검증 -> 검토로 바뀌었다 - 검토 verification 이게 리뷰다 올바르게 하고 있는가? 과정을 전부 검토 - 확인 validation 이건 결과물에 대한 확인 테스트 기초 용어로 4가지가 있다- 버그 문제, 결함을 나타내는 일반적인 용어 - 오류 개발자가 잘못하여 설계나 코딩에 실수한 것 EX) 오버플로우를 고려하지 않고 설계한 것 - 결함 시스템이 고장을 일으키게 하는 오류의 결과 - 고장 시스템이 원하는 작업을 수행할 수 없는 상황 테스트 하네스 Test Harness시스템 일부 기능만 시험하기 위해 소프트웨어에 변경을 가하는 경우이다. 키워드 기반 테스팅테스트 자동화 프레임워크의 일종으로테스트의 각 단계를 설..

[소프트웨어 공학] 10. 테스팅, 11. 유지보수

Junit 단위 테스트 실습을 진행했다스프링은 아니고, 순수 자바 코드이고 쉬운 실습 public class StudentManager { private Set students = new HashSet(); //학생 추가 public void addStudent(String name) { if (students.contains(name)) { throw new IllegalArgumentException("이미 존재하는 학생입니다: " + name); } students.add(name); } //학생 제거 public void removeStudent(String name) { if (!stu..

[소프트웨어 공학] 9. 코딩

기초여기서 단위 테스트와 QA의 차이점함수들의 기본적인 인풋과 아웃풋을 확인해 주는게 단위 테스트그걸 통합하면서 발현되어야 하는 기능들을 통합적으로 테스팅하는게 QA 자주 발생하는 오류 메모리 누수 Memory Leak메모리가 프리 되지 않고 프로그램에 계속 할당되는 현상 구체적으로, 힙 영역에 올린 후 내리지 않으면 해당 메모리 공간에 OS가 할당하지 않으므로 사용할 메모리가 없어지는 상황을 말한다. 예시로, java를 사용한다면 JVM GC가 가비지 콜렉팅을 하면서 free를 해주지만 그게 즉각적인 free는 아니기 때문에 시스템에 장애가 오는 경우가 있다고 하셨다.JVM과 GC에 대해 공부해 봐야겠다고 생각했는데 이번 방학때 꼭!! 해야겠다 중복된 free 선언free를 안하는것도 문제지만 2번..

[소프트웨어 공학] 8. UI 설계

UI로 사용자 경험을 이끌어 내는것이다. 사용성 (usability)라는 척도로 얼마나 사용하기 편한지를 나타낸다.사용성에 영향을 주는 요소는학습 용이성효율성기억 용이성낮은 오류율자신감과 만족? 개발자는 시스템 내부 동작을 알고 있기 때문에 조금의 불편함이 있어도 사용할 수 있지만, 사용자는 그렇지 않다. 즉 개발자 관점에서 UI를 만드는 것과 사용자 관점에서 UI를 만드는 것은 굉장히 다르다-> 디자인 씽킹 멘탈 모델현실 세계의 사물이나 과정이 어떻게 동작하는지에 대한 개인의 이해. 위에서 나왔던 사용자 관점, 개발자 관점에 대한 내용을 멘타 모델이라고 표현할 수 있겠다. 이를 해결하기 위해서많은 사람들의 인터뷰가 필요하다고 하셨다. UI 설계 원리교수님은 초, 중에서 배우는 도덕에 비유하셨다단순하..

[소프트웨어 공학] 7. 아키텍쳐와 패턴 (중요)

아키텍쳐 기초수많은 아키텍쳐가 있지만 학부생들 대부분은 원시 코드를 사용한다고 지적해 주셨다.그 이유에 대해 코딩 테스트를 비판하시며 시스템을 크게 가져가면서 넓게, 크게 봐야 하는데 그걸 테스트 하지 않기 때문이라고 하셨다. 특히 아키텍쳐에 대한 생각 없이 개발하는 사람들이 대체 1순위이다,, 라고 하셨다. 되게 공감되는 이야기이였다. 요즘 채용 프로세스에 과제가 포함되는게 좋은 점인 것 같다. 추가로 링크드인을 꼭 가입하라고 하셨다. 나도 링크드인을 통해 modular monoliths를 접했고 현 프로젝트에 접목하고 있는데 정말 이건 혁신이다. 브라운 형님 멋있다관심있으신 분들은 보시길https://www.youtube.com/watch?v=5OjqD-ow8GE&t=1s 레퍼런스가 많이 없어서 고..