본문 바로가기

프로그래밍/기타17

[시스템] Exceptions: 시스템의 다양한 예외 분류 이전에 쓴 글에서 이어서, 시스템에서의 Exception에 대해 다뤄보려고 한다. 논할 내용은 다음과 같다. Exceptions의 분류 비동기 사례: 인터럽트 동기 사례: Traps, Faults, and Aborts Exceptions의 분류 Exception은 특정한 이벤트가 발생할 경우, control을 OS Kernel로 변경/전송해주는 역할을 한다. Exception은 다양한 이벤트를 통해 발생할 수 있는데, 그 예시는 다음과 같다. 0으로 나누기 page fault Ctrl-C 누르기 I/O 요청 완료 위의 경우들의 종류에 따라, Exception은 프로세스를 잠시 멈추고 커널로 이동하여 예외를 핸들링한다. 만약 I_current에 있는 명령어를 실행하는 과정에서 Event가 발생하면, 해당 .. 2021. 5. 4.
[시스템] Control Flow와 Exceptions 최근 대학에서 시스템 프로그래밍을 공부하고 있는데, 여기에서 예외 처리에 대한 내용이 언급되었다. Java를 쓰는 만큼 예외 발생이나 핸들링에는 익숙하지만, 생각해보면 C를 쓸 때에는 예외 개념이 없었으니까...당시엔 어떻게 예외를 처리했나 궁금하던 터였다. 그래서, 오늘 배운 내용을 간단히 정리해보려고 한다. 다룰 내용은 다음과 같다. 프로세스와 Control Flow Control Flow를 변형하는 특수한 사례들 Exceptions 1. 프로세스와 Control Flow 우리가 사용하는 프로그램들은, 명령어(instruction)들의 집합이다. 그리고 이러한 프로그램이 메모리에 적재되어 실행되는 중일때, 그것을 프로세스라고 한다. 즉 프로세스는, "an instance of a running pro.. 2021. 5. 2.
DTO 직렬화 과정에서 PropertyNamingStrategy 사용하기 프로젝트를 진행하면서 외부 서버와 통신할 일이 있는데, 이 과정에서 자잘한 스트레스를 받았다. 카카오에서 제공하는 Daum 검색 API로 책 관련 정보를 파싱받고 있다. 그런데, 여러 개의 도서 정보를 조회 시 주어지는 메타 정보 데이터가 다음과 같이 주어진다. "meta": { "is_end": true, "pageable_count": 1, "total_count": 1 } 변수명이 Snake Case로 선언되어 있다. 보통 변수명을 지을 때는, 다음과 같은 케이스를 많이 사용한다. 케밥 케이스 : 하이픈으로 단어를 연결한다. (예시 : is-end, pageable-count) 스네이크 케이스 : 밑줄 문자로 단어를 연결한다. (예시 : is_end, pageable_count) 카멜 케이스 : 첫.. 2021. 3. 4.
[학습] 리액티브 프로그래밍 이 글은 크레이그 윌즈, 『스프링 인 액션』, 심재철 역, 제이펍(2020) 의 내용을 바탕으로 작성하였습니다. 좋은 책이니 스프링의 트렌드를 학습해보고 싶다면 정독을 권합니다. 링크 스프링 인 액션 리액티브 프로그래밍 지원을 강화한 스프링 5의 모든 것을 탐구한다! 『스프링 인 액션』에서는 스프링 5와 스프링 부트 2를 사용해서 애플리케이션을 개발하는 데 필요한 여러 핵심 기능을 알 www.yes24.com 1. 명령형과 리액티브 명령형은 순차적으로 연속되는 작업이며, 각 작업은 한 번에 하나씩, 이전 작업 다음에 실행된다. 데이터는 모아서 처리되고 이전 작업이 데이터 처리를 끝낸 후 다음 작업으로 넘어갈 수 있다. 리액티브는 데이터 처리를 위해 일련의 작업들이 정의되지만, 이 작업들은 병렬도 실행될 .. 2021. 2. 26.
DTO란 무엇인가, VO와의 비교 오늘은 다음의 고민 때문에 글을 작성하게 되었다. DTO가 정확히 뭘 의미하는 거지? DTO를 꼭 써야하는 이유가 뭐지? DTO랑 VO를 많이 비교하던데, 뭐가 다른거지? DTO란 무엇인가 DTO(Data Transfer Object, 데이터 전송 객체)는 프로세스 간에 데이터를 전달하는 객체이다. 이해를 위해, "리팩토링"의 저자로 유명한 마틴 파울러가 DTO에 대해 어떻게 정의했는지 참고해 보자. P of EAA: Data Transfer Object | P of EAA Catalog | Data Transfer Object An object that carries data between processes in order to reduce the number of method calls. For a .. 2021. 2. 16.
반응형