Study Programming/IT용어 21

reflection 이란?

Reflection(리플렉션, 반영)? : 컴퓨터 프로그램에서 런타임 시점에 사용되는 자신의 구조와 행위를 관리(type introspection)하고 수정할 수 있는 프로세스를 의미 - “type introspection”은 객체 지향 프로그램언어에서 런타임에 객체의 형(type)을 결정할 수 있는 능력을 의미한다. - 코틀린에서 :: 인자를 리플랙션하기 위해 자주 사용한다. Ex) 자바 클래스를 인자로 넘기기 위해 코틀린 클래스 레퍼런스는 '클래스명::class'으로 표현 자바 클래스 레퍼런스는 '클래스명:class.java'으로 표현 출처 https://ko.wikipedia.org/wiki/%EB%B0%98%EC%98%81_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED..

코드 스멜(code smell←코드 냄새)

코드 스멜(= code smell = 코드 냄새) : 컴퓨터 프로그래밍 코드에서 더 심오한 문제를 일으킬 가능성이 있는 프로그램 소스 코드의 특징을 가리킨다. 특징 - 애자일 프로그래머가 사용하는 용어이기도 하다 - 코드 스멜인지 아닌지의 여부를 결정하는 일은 주관적 - 자동으로 특정한 종류의 코드 스멜을 확인하기 위한 도구들이 있으며, 그 예로는 체크스타일, PMD, 파인드벅스 등 점점 안 좋은 단어만 많이 알아가는 기분이다 ㅋㅋㅋ 출처 https://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%EC%8A%A4%EB%A9%9C 코드 스멜 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org

Stateless protocol (무상태 프로토콜)

Stateless protocol (무상태 프로토콜) : 어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜 - Ex) 인터넷의 기반이 되는 토콜(IP)과 월드 와이드 웹의 데이터 통신의 토대가 되는 HTTP - 통신이 독립적인 쌍의 요청과 응답을 이룰 수 있게 하는 방식 - 서버가 복수의 요청 시간대에 각각의 통신 파트너에 대한 세션 정보나 상태 보관을 요구하지 않는다. cf) 상태 프로토콜(stateful protocol) : 서버의 내부 상태 유지를 요구하는 프로토콜 출처 - 위키백과 : https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%83%81%ED%83%9C_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

MIDI

리눅스의 사운드카드 디바이스 드라이버 지원 프레임워크 ALSA에서 MIDI합성기능 제공한데서 궁금해짐. 악기 디지털 인터페이스 (영어: Musical Instrument Digital Interface, 줄여서 MIDI(미디, /ˈmɪdi/)) : 전자 악기끼리 디지털 신호를 주고 받기 위해 각 신호를 규칙화한 일종의 규약. 다시 말해 악기와 컴퓨터, 악기와 악기끼리 주고받을 수 있는 언어와 통로의 신호 체계 표준. Ex 어떤 전자 악기(건반, 신시사이저, 모듈 등)가 이 표준에 따라 만들어졌다면, 그 전자 악기가 미디를 지원한다고 할 수 있다. - 미디 안에는 업체별로 많은 규약들이 존재 ex) 대표적으로 일반 미디(General MIDI), GS 등 +) 하지만 지금은 미디라는 용어 자체가 하나의 상..

코어 덤프(core dump), 메모리 덤프(memory dump), 또는 시스템 덤프(system dump)

코어 덤프(core dump), 메모리 덤프(memory dump), 또는 시스템 덤프(system dump) 다 같은 말인데 왜 3개야...ㅜㅜ - 개념 : 컴퓨터 프로그램이 특정 시점에 작업 중이던 메모리 상태를 기록한 것으로, 보통 프로그램이 비정상적으로 종료했을 때 만들어진다. 즉, 비정상적인 종료가 발생하는 경우 커널에서 해당 프로세스와 관련된 메모리 상태를 기록한 파일 - 포함 정보 : 실제로는, 메모리 상태(메모리 덤프) 외에 중요한 프로그램 상태도 같이 기록(프로그램 카운터, 스택 포인터 등 CPU 레지스터나, 메모리 관리 정보, 그 외 프로세서 및 운영 체제 플래그 및 정보 등) - 존재이유 : 프로그램 오류 진단과 디버깅에 쓰임 [궁금해진 원인] >> 리눅스 Signal 공부 중 "si..

보일러 플레이트 코드란? (Boilerplate Code?)

MVC의 단점은 '보일러 플레이트 코드가 늘어난다'고 한다. 그래서 보일러 플레이트 코드란? 보일러 플레이트 코드 (=Boilerplate Code =상용구 코드) : 어디서쓰나 거의 또는 전혀 변경도 없이 똑같이 쓰는데 여기저기서 필요로 하여 재사용되는 코드 섹션 문제점 Problem) 이렇다보니, 작은 기능에도 많은 코드를 양산해내게 되는 문제점이 있다. 대표적인 예 Example) Ex1) Java의 Getter/Setter (이래서 Kotlin에서는 자동화로 없어졌나보다) public class Pet { private PetName name; public Pet(PetName name, Person owner) { this.name = name; } public PetName getName() ..