분류 전체보기 495

2022 Dev History

2022-07-18 ~ 2022-07-24 월요일 2022.07.18 1. 운영체제 모니터 2. 운영체제 DeadLock 3. 운영체제 주소 바인딩과 MMU 4. 스프링 요청 5. 백준 2800번 화요일 2022.07.19 1. 운영체제 페이징 2. 백준 20056번 수요일 2022.07.20 1. 운영체제 가상 메모리 2.스프링 응답 목요일 2022.07.21 1. 운영체제 메모리 해제 할당 2. 백준 15685번 금요일 2022.07.22 1. 운영체제 디스크 시스템 토요일 2022.07.23 일요일 2022.07.24 1. 자바 Hash 2. 운영체제 파일 시스템 3. 스프링 상품 도메인 2022-07-25 ~ 2022-07-31 월요일 2022.07.25 1. 백준 1918번 2. 스프링 HTML..

기타 2022.07.26

[Spring] 타임리프 실습

목차 1. 타임리프 문법 2. 관련 클래스 3. html, css 타임리프 문법 1) 타임리프 사용 선언 2) 타임리프 속성 변경 th:href="@{/css/bootstrap.min.css}" // 타임리프 속성 변경 href="../css/bootstrap.min.css" // 기존 타임리프 뷰 템플릿을 거치게 되면 서버렌더링을 통해 원래 값을 th:xxx로 변경하게 된다. 3) URL 링크 표현식 - @{...} th:href="@{/css/bootstrap.min.css}" 타임리프는 URL링크 사용시 @{...}를 사용한다. 이를 링크 표현식이라고 한다. 4) 상품 등록 폼으로 이동 속성 변경 th:onclick onclick="location.href='addForm.html'" // 기존 t..

백엔드/Spring 2022.07.26

자기관리론 구절 및 독후감

자기관리론 독후감 및 구절 1. 도달할 수 없는 과거에 도달하려고 애쓰며 스트레스 받지 마라. 충실하게 현재를 사는 것은, 아름다운 과거가 된다. 또한 다가올 미래를 대비할 최선의 방법이다. 2. 걱정이 되면, 최악의 상황을 받아들여라. 그리고 문제 해결방안을 생각하면 된다. P.43 3. 걱정을 치료하는 방법은 건설적인 일에 몰두하는 것이다. P.85 4. 무시하고 잊어야 할 사소한 일로 속상해하지 말라. ‘사소한 일에 신경 쓰기에는 인생이 너무 짧다. P.99 5. 평균의 법칙에 따르면 내가 걱정하는 일이 일어날 가능성은 얼마나 되는지 생각하고 안심하기 P.107 6. 행복으로 가는 길은 오직 하나밖에 없습니다. 우리의 의지를 넘어서는 일은 걱정하지 않는 것이지요. P.115 7. 걱정을 손절매하라...

기타/독서 2022.07.26

[운영체제] 버퍼와 캐시 차이점

목차 1. 버퍼 2. 캐시 3. 버퍼와 캐시의 차이 버퍼 1) 개념 데이터를 한 곳에서 다른 곳으로 전송할 동안 일시적으로 데이터를 보관하는 메모리 영역. 예를들어 CPU는 1초에 100개의 데이터를 처리할 수 있지만 정작 처리할 데이터를 가지고 있는 보조 기억 장치는 데이터를 1초에 세 개밖에 보내주지 않는다. CPU입장에서는 아무리 일을 열심히 하고 싶어도 데이터를 보내주지 않기 때문에 능력에 비해 97 개 만큼 효율성을 잃게 된다. 따라서 entire block 단위로 읽기 쓰기를 하지 않고, 작은 block 단위로 buffer에 데이터를 모아두고, CPU는 다른 일을 하다가 돌아와서 buffer의 데이터를 연산한다. 이를 위해 임시 저장소인 buffer가 있는 것이다. 2) 특징 1. 일시적으로 ..

CS/운영체제 2022.07.26

[운영체제] 파일 시스템(File System) 정리

목차 1. File and File System 2. File Protection 3. Directory 4. Directory Implementation 4. Allocation 방식 5. Free Space Management File and File System 1. 파일(File)은 논리적인 저장 단위로, 관련된 정보 자료들의 집합을 의미한다. Record, Block 단위로 비휘발성 보조기억장치(하드디스크)에 저장된다. 2. 파일 속성(File attribute) 또는 파일 메타데이터(metadata)는 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들을 의미한다. 파일 이름, 유형, 저장 위치, 사이즈 등이 이에 해당한다. 3. 파일 시스템(File System)은 운영체제와 모든 ..

CS/운영체제 2022.07.25

[Spring] 스프링 HTTP 응답 하기

목차 1. 응답 - 정적 리소스, 뷰 템플릿 2. 응답 - HTTP API, 바디에 직접 입력 3. HTTP 메시지 컨버터 4. 요청 매핑 핸들러 어댑터 구조 응답 - 정적 리소스, 뷰 템플릿 스프링에서 응답 데이터를 만드는 방법은 총 3가지이다. 1) 정적 리소스 스프링 부트에서는 /static, /publc, /resources, /META-INF/resources 정보를 제공한다. src/main/resources는 리소스를 보관하는 곳이면서, 클래스 패스의 시작경로인 것이다. 따라서 위의 디렉토리에 리소스를 넣어두면 스프링 부트가 정적 리소스로 서비스를 제공하게 된다. 정적 리소스 경로 src/main/resources/static 만약 아래와 같은 경로에 파일이 있다고 하자 src/main/re..

백엔드/Spring 2022.07.22

[운영체제] 디스크 시스템

목차 1. 디스크 시스템 디스크 시스템 1. Disk pack 하드 디스크의 원판을 Disk pack이라고 한다. 디스크 팩의 구성 1) Sector 데이터 저장/판독의 물리적 단위 2) Track Platter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합 3) Cylinder 같은 반지름을 갖는 track의 집합(track 과 cylinder는 혼용하는 개념) 4) Platter 양면에 자성 물질을 입힌 원형 금속판 데이터의 기록/판독이 가능한 기록 매체 5) Surface Platter의 윗면과 아랫면 2. Disk drive Disk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치이다. 디스크 드라이브의 구성 1) Head 디스크 표면에 데이터를 기록/판독한다. 2) Ar..

CS/운영체제 2022.07.22

[Spring] 스프링 HTTP 요청 받기

목차 1.로거 2. 요청 매핑 3. HTTP 요청 - 기본, 헤더 조회 4. HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form 5. HTTP 요청 파라미터 - @RequestParam 6. HTTP 요청 파라미터 - @ModelAttribute 7. HTTP 요청 메시지 - 단순 텍스트 8. HTTP 요청 메시지 - JSON 로거 개요 스프링 부트 라이브러리에는 logging이 포함되어있다. 기본적으로 SLF4J와 Logback 라이브러리를 사용한다. 로그 라이브러리에는 여러가지가 있는데, 이를 통합해 인터페이스로 제공하는 것이 SLF4J 라이브러리이다. 사용법 로그 선언 private Logger log = LoggerFactory.getLogger(getclass()); @Slf4j 롬복 ..

백엔드/Spring 2022.07.22

누구나 이해할 수 있는 백준 드래곤 커브 풀이 파이썬

백준 드래콘 커브 풀이 파이썬 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 풀이 아이디어 예를 들어 4 2 1 3 이라고 해보자 (설명은 x, y를 바꿔서 한다. 기존의 그래프 탐색처럼! 헷갈리니까) 2세대 까지 하면 아래와 같이 된다. arr = [[2, 4], [1,4], [1,3]] - 기존세대 1세대 arr2 = [[2, 4], [1,4], [1,3], [2,3], [2,2]] - 추가된 세대 2세대 이제 ..

CS/알고리즘 2022.07.22

[운영체제] 물리 메모리 해제와 할당의 동작 원리

목차 1. 물리 메모리 해제 1.1 LRU, LFU, FIFO 알고리즘 1.2 Clock 알고리즘 2. 물리 메모리 할당 2.1 Thrashing 2.2 working-set 알고리즘 2.3 pff 알고리즘 프로세스를 할당 할 때, 물리 메모리가 가득차 있으면, 특정 프로세스의 물리 메모리를 해제하고, 할당하려는 프로세스의 정보를 하드 디스크에서 읽어와 물리 메모리에 할당하게 된다. 그렇다면 물리 메모리는 어떤 기준으로 해제하는지 동작 원리에 대해 알아보자. 물리 메모리 해제 1. LRU, LFU, FIFO 1) LRU(Least Recently Used Algorithm) 가장 오랫동안 참조되지 않은 페이지를 교체하는 방법이다. 2) LFU(Least Fequently Used Algorithm) 가장..

CS/운영체제 2022.07.21