일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- application layer
- 파이썬
- 커밋 되돌리기
- 런타임 상수
- 은행원알고리즘
- 기본키 전략
- 편향된 지수
- JPA
- intelij spring config
- @Autowired
- API
- 컴파일 타임 상수
- 무한정 대기
- compgen
- @SubscribeMapping
- DTO
- allocationSize
- 데커
- BindingResult
- JDBC
- 프로그래머스
- m:n
- 리눅스
- 알고리즘
- 영속화
- 쿠키
- Git
- 백준
- 쉘 스크립트
- spring
- Today
- Total
목록전체 글 (93)
둘셋 개발!
Critical section이란? 공유 자원 접근 순서에 따라 실행 결과가 달리지는 프로그램 영역 (출처: 쉽게 배우는 운영체제) 여러 프로세스가 변수, 메모리, 파일 등을 공유하면서, 접근 순서에 따라 실행 결과가 달라, 예상이 불가능한 구역을 critical section이라고 한다. 가장 간단한 예로 만약 money=5000이 있고, 프로세스가 2개가 있다고 가정해보자. process1은 money-=1000을 하고 process2는 money+=500을 한다고 해보자 process1은 money가 5000원인 것을 확인하고 1000을 빼려는 작업을 시작하고, process2도 money가 5000원인 것을 확인하고 500을 더하려는 작업을 시작한다. 이렇게 되면 process1이 먼저 작업을 끝..
프로세스의 상태 중에 ready(준비 상태)에 있는 프로세스 들은 큐에 담겨져 있는데, 어떤 기준으로 담겨있어야 cpu를 효율적으로 사용할 수 있을까?? 먼저 어떤 알고리즘들이 있는지 알아보자. 1. FCFS 스케줄링 First Come First Served의 약자로, 먼저 들어온 순서대로 cpu를 할당받는 스케줄링이다. 한 프로세스가 끝나야 다음 프로세스가 cpu를 할당 받을 수 있음으로 비선점 알고리즘이다. - 장점: 단순하고 공평하다. - 단점: 처리시간이 긴 프로세스가 먼저 도착한다면 뒤에 있는 프로세스는 대기시간이 계속 길어져 시스템의 효율성이 떨어진다. 2. SJF 스케줄링 Shortest Job First로 실행시간이 짧은 순서대로 cpu를 할당받는 스케줄링이다. sjf도 비선점 알고리즘이..
스레드란? 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위 (= 프로세스 내에서 실제 작업을 실행하는 주체) 프로세스가 메모리로 로드하여 실행되는 프로그램이였다면, 스레드는 프로세스 내의 여러 작업들을 쪼개놓은 단위라고 생각하면 된다. 요즘은 cpu에 여러 코어가 있기 때문에 하나의 프로세스를 실행할 때 여러 코어에 스레드 단위로 작업 처리를 맡기면 효율을 높일 수 있다. 이렇게 프로세스를 스레드 단위로 쪼개고 스레드 단위로 cpu를 할당하는 것을 멀티스레딩 이라고 한다. 스레드 구조 (프로세스 구조를 모른다면 -----> https://lightson2323.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%E..
BindResult는 Controller 메소드에서 @ModelAttribute에서 객체 바인딩 시 타입 검증에 실패하면 에러정보를 담는 인터페이스이다. 사용예시를 보면, Item.java import lombok.Data; @Data public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }..