본문 바로가기

반응형

진리는어디에

(291)
[socket] socket 함수에 관한 고찰 들어가며 프로그래밍을 공부하면서 최소한 소켓 프로그래밍라는 것에 대해서 한 두번은 들어 보셨다고 가정하겠습니다. 그렇지 않으시다면 이 포스팅을 찾아서 읽고 계실 이유가 없겠지요. 뭐, 그것이 아니라면 최소한 소켓프로그래밍에 관심이 있어 어디에서 든지 배워 보고자 하시는 분들이겠지요. 따라서 소켓의 역사니, 어쩌고 귀찮은 이야기 들은 하지 않도록 하겠습니다. 간단 명료하게 시작하도록 하겠습니다. 소켓프로그램을 시작하기 위해서는 '소켓(socket)'이라는 것이 필요 합니다. 너무 당연한 말인가요? 일단 소켓이라는 것이 무엇인지에 대해서 먼저 알아보도록 하겠습니다. 전산학에 관련된 모든 정의를 내린다고 해도 과언이 아닐 정도로 정의를 많이 가지고 있는 RFC문서에 따르자면 아래와 같이 이야기 하고 있습니다...
[Linux] 좀비 프로세스 죽이기 좀비 프로세스란? 자식 프로세스가 exit 시스템 콜을 호출하여 종료 되면 프로세스에 관련된 모든 리소스가 해제되어 다른 프로세스에서 사용 할 있게 되지만, 자식 프로세스가 종료 되더라도 부모 프로세스에서 자식 프로세스의 상태를 알고 싶을 수도 있기 때문에 커널은 자식 프로세스가 종료 되더라도 프로세스 아이디, 종료 상태 등의 최소한의 정보를 프로세스 테이블에 유지 한다. 이미 프로세스의 리소스는 모두 회수 되었지만 시스템의 프로세스 테이블에 남아 있는 프로세스를 "defunct" 또는 "dead" 상태 프로세스라고 하며 일반적으로 "좀비" 프로세스라고 더 잘 알려져 있다. 이 좀비 프로세스를 없애기 위해서는 부모 프로세스가 죽거나, 부모 프로세스에서 wait 또는 waitpid 시스템 콜을 호출하면 된..
[C++20] 어트리뷰트(Attribute) attribute는 C++11 부터 지원되는 기능으로써 자료형, 객체, 코드등에 대하여 속성(attribute)을 설명하는 단일화된 표준 문법을 제공한다. 예를 들어 GNU와 IBM에서는 __attribute__(...))가 있었고, MS 비주얼 스튜디오에는 __declspec()이 제공하던 기능들이 C++11 부터 언어 자체에 포함 된 것이다. attribute는 컴파일러에 추가 정보를 전달하는 것으로써 자료형, 객체, 코드등에 대하여 속성을 지정하여 구현된 내용이 속성과 부합하지 않는다면 경고 또는 에러를 출력한다. 컴파일 타임에 코드의 내용을 분석해서 attribute와 맞지 않는다면 컴파일 에러 또는 경고를 발생 시키므로 주석보다는 가능하다면 attribute를 사용하도록 하자. atturbute..
[C++20] Feature Test Macro Feature Test Macro는 C++에서 제공하는 기능을 현재 사용 중인 컴파일러가 지원하는지 그렇지 않은지 여부를 테스트하기 위한 전처리 명령어(매크로)다. Attributes __has_cpp_attribute( attribute-token ) 현재 사용하는 컴파일러가 attribute-token에 지정된 attribute를 지원하는지 체크 #if, #else, #ifdef, #ifndef를 이용해 컴파일 타임에 지원 여부 체크 가능 int main() { #if __has_cpp_attribute(carries_dependency) std::cout
[C++20] 코루틴(Coroutine) - co_return 코루틴을 종료하기 위해선 co_return을 호출한다. Task foo() { co_return; } co_return은 값을 리턴 할 수도 있고, 아무런 값도 리턴하지 않고 단순히 코루틴을 종료하기만 할수도 있다. 값을 리턴하느냐 그렇지 않느냐에 따라 코루틴 함수의 리턴 타입이 가져야 하는 요구사항이 달라진다. 코루틴의 리턴 타입에 어떠한 것들이 필요한지 아래 예제를 통해 알아 보도록 한다. 컴파일러는 co_return 키워드를 만나면 아래와 비슷한 코드를 생성한다. Task foo() { promise.return_void(); co_await promise.final_suspend(); } 컴파일러는 co_return 대신에 promise와 co_await를 생성한다. foo() 함수는 아무것도 리..
[JavaScript] ToC(Table of Conents) 만들기 글의 내용이 길어지다 보면 내게 필요한 내용을 찾기 위해 끊이 없이 화면을 스크롤 해야 하는 경우가 있다. 이럴 때 목차를 자동으로 만들어 주면 좋지 않을까 항상 생각해 왔는데 이미 그런 것이 존재 했다. ToC라고 매번 저게 뭘까 궁금했었는데 Table of Contents라고 글 제목들을 추려 자동으로 목차를 만들어 주는 기능라고 한다. 여기저기 기웃 거리며 쉽게 가져다 쓸만한 것이 없나 살펴 보았지만 이것들 역시 블로그 스킨 처럼 뭔가 나에게 2% 부족했다. 그래서 나름 나도 개발자라는 호승심에 직접 만들어 보고자 한다. jQuery(https://jquery.com)를 기본 바탕으로 만들 예정이다. 요즘 javascript가 많이 개선되고 필요한 다양한 기능들이 지원되서 더 이상 jQuery에 의..
[JavaScript] let, const 변수 2015년 이전까지는 var만이 자바스크립트에서 유일한 변수였다. 하지만 자바스크립트 2015버전(ES6) 부터는 const 키워드와 let 키워드를 지원한다. const 변수 : 한번 값이 할당 되면 변경 할 수 없는 변수 let 변수 : 블록 유효 범위를 갖는 지역 변수. 선언과 동시에 임의 값으로 초기화 가능. var 변수 : 함수 블록 유효 범위 또는 전역 유효 범위를 갖는 변수. var 변수는 블록 유효 범위를 가질 수 없다. 만일 함수가 아닌 단지 블록 내에서 var 변수를 선언하였다면 블록 밖에서도 접근이 가능하다. typeof : 변수의 타입을 리턴 instanceof : 오브젝트가 해당 타입의 변수라면 true 리턴 javascript에서 null은 object다. typeof null은..
[CSS] position 프로퍼티 엘리먼트의 위치를 지정하는 프로퍼티는 top, bottom, left, right가 있다. 하지만 이 프로퍼티들은 아래에서 언급 할 position 프로퍼티가 지정되기 전까지는 동작하지 않으며 position 프로퍼티에 어떤 값이 지정되는지에 따라 다른 동작을 한다. position 프로퍼티는 엘리먼트가 위치하는 방법을 정의한다. position 프로퍼티는 아래의 다섯가지 값중 하나를 가질 수 있다. static relative fixed absolute sticky position: static; position 프로퍼티의 기본 값이며 static 포지션은 top, bottom, left, right 프로퍼티에 영향을 받지 않는다. position: static; 으로 설정된 엘리먼트는 페이지의 흐름에..
[CSS] ::before, ::after CSS에서 ::before와 ::after는 선택한 엘리먼트의 앞 또는 뒤에 content에 지정된 문자열을 추가합니다. 보통 엘리먼트를 장식 할 때 사용 됩니다. Example : https://kukuta.tistory.com https://kukuta.tistory.com Result : https://kukuta.tistory.com->
[CSS] 프로퍼티 컬러(Color) 색상 표현 - 정의된 색상 이름 또는 RGB, HEX, HSL, RGBA, HSLA 값으로 표현 가능 Hello World Hello World Hello World Hello World Hello World 배경색 프로퍼티 "background-color" Hello World 텍스트 컬러 프로퍼티 "color" Hello World 테두리 프로퍼티 "border" Hello World 배경(Background) 배경색 프로퍼티 "background-color" Hello World 배경 투명도 "opacity" h1 { background-color: red; opacity: 0.3; } ※ opacity를 조절하면 h1 엘리먼트에 속한 텍스트의 투명도도 같이 적용 된다. 배경의 투..

반응형