본문 바로가기

프로그래밍3

팩토리 함수 이름짓기 최근에 이펙티브 코틀린(링크)을 재미있게 읽고 있다. 코틀린 기초가 빈약해서 조금 어려운 감은 있지만, 코틀린 외에도 개발 전반에 대한 이야기가 종종 나와 유용하다. 읽던 도중, 팩토리 함수에 대한 언급이 나와 정리해본다. 출처: 마르친 모스칼라, 『이펙티브 코틀린』 (인사이트, 2022), 206~211pp. (아이템 33 생성자 대신 팩토리 함수를 사용하라) 팩토리 함수 팩토리 함수는 생성자의 역할을 대신 해주는 함수를 뜻한다. 팩토리 함수를 생성자 대신 사용할 경우, 아래와 같은 장점이 생긴다. 생성자와 달리, 이름을 붙여 특별한 객체를 생성하는 경우에 대한 의미를 전달할 수 있다. 함수가 원하는 형태의 타입을 리턴할 수 있다. 예를 들어, listOf는 List 인터페이스 중 적절한 클래스(예: .. 2022. 4. 3.
[시스템] 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.
반응형