프로그래밍49 [시스템] 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. 9. Log4jdbc로 DB 로그 저장하기 코드 확인을 위해, 관련 PR 링크를 첨부한다. #17 Logback을 통해 DB 로그 남기기 by include42 · Pull Request #18 · include42/spring-books-diary Resolved: #17 github.com 간만에 돌아온 포스팅. 오늘은 다음의 목표를 이루기 위해 어떤 작업을 했는지 적어보려고 한다. Log4jdbc를 사용하여 DB 관련 로그를 수집한다. 수집한 로그를 필터링하여 필요한 로그만 출력한다. 로그를 파일로 남겨 문제 시 확인할 수 있도록 한다. 1. Log4jdbc Log4jdbc는 Log4j를 JDBC와 연결하여 사용하기 위해 만들어진 오픈소스 프로젝트이다. Log4jdbc의 깃헙 링크이다. arthurblake/log4jdbc log4jdbc .. 2021. 4. 1. 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. 8. 로그 파일 만들기, 인터셉터 구현하기 코드 확인을 위해, 관련 PR 링크를 첨부한다. #5 로깅 구현 및 로깅을 위한 인터셉터 구현하기 by include42 · Pull Request #10 · include42/spring-books-diary Resolved: #5 실수로 Develop 브랜치에 커밋해 버려서, Revert 후 기능 브랜치에 다시 작성하였습니다. 이를 merge하는 방향으로 가고자 합니다. github.com 간만에 돌아온 포스팅. 오늘은 다음의 목표를 이루기 위해 어떤 작업을 했는지 적어보려고 한다. 서버에 들어온 요청/응답, 예외 발생 등에 대해 로그를 남긴다. 남긴 로그를 콘솔에서 확인한다. 로그를 파일로 남겨, 추후 배포 중 오류가 발생한 경우 확인할 수 있도록 한다. 1. 로깅이란 무엇인가? 로깅(logging.. 2021. 3. 3. 7. 도메인과 조회 로직 다시 만들기 이전 글에서, ERD 설계를 간단히 마무리하는 데까지 포스팅이 되었다. 이후 여러 이슈가 해결되었고 개발에 진전이 있었으나, 아쉽게도 바로바로 포스팅을 하지 못했다. 그래서 오늘은, Book(도서) 엔티티 모델을 어떻게 만들었고, 어떤 식으로 테스트와 검증을 수행하도록 설계했는지 정리하고자 한다. 먼저 Book 클래스의 코드이다. @Getter @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @EntityListeners(AuditingEntityListener.class) @Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.IDE.. 2021. 2. 26. 이전 1 ··· 3 4 5 6 7 8 9 다음 반응형