본문 바로가기

프로그래밍

(48)
scanf가 씹히는 경우 레드벨벳 조이 C언어로 코딩을 하는 경우 무한루프 ( while (1), for (;;) ) 안에서 scanf() 함수를 호출하여 값을 연속적으로 받고 연산을 하는 경우가 많다. 근데 이 경우에 scanf()가 씹히는 경우가 빈번히 생기는데, 이 때의 해결법을 써보도록하겠다. scanf()가 씹히는 경우는 버퍼에 사용자가 입력한 것이 남아있기 때문이다. %c를 받는 경우엔 \n (0x0a) 도 버퍼에 들어가기 때문에 scanf() 함수에서는 다음 루프를 돌 때 입력받은 값이 \n (0x0a) 된다. 이 경우에는 내가 생각한 두 가지의 해결책으로 해결할 수 있다. 1. scanf() 함수 뒤 getchar() 함수를 사용한다. - scanf() 함수 뒤 getchar() 함수를 사용하면 scanf()를 호..
웹페이지 로딩 느릴때 팁 레드벨벳 아이린 빨간맛 오프닝 가끔 웹 프로그래밍을 하다보면 bootstrap.min.css, jquery.min.js 에서 웹페이지가 로딩되는 속도를 무지하게 잡아먹는 경우가 있는데 이 때는 https://www.jsdelivr.com 에서 해결 가능하다. 다양한 버전별로 로드할 수 있어서 더 좋음ㅋㅋ 내가 현재 개발하고 있는 nCTF 프레임워크도 cdn을 쓰기 시작하고부터 페이지 로딩 속도가 매우 빨라짐을 체감할 수 있었다... [*] url : https://github.com/ch4n3-yoon/nCTF/commit/954b0ec4428f9c5a391499ed3210adfb663bec4c 하긴 원래는 {user}.github.io 써서 더 드렸던 이유도 있었음ㅋㅋㅋㅋ
javascript 일반 함수와 화살표 함수 javascript에서는 일반적으로 함수를 선언하는데 크게 두 가지의 방법을 갖고 있다. 첫 번째 방법이 바로 일반적으로 사용하는 function () {} 같은 방법이고 두 번째가 화살표 함수이다. 화살표 함수라는 용어 자체는 Mozilla 의 Web Docs에서 가져왔다. 화살표 함수는 선언할 때 다음과 같은 방법을 사용한다. () => {} 처음에 Javascript를 배우기 시작했을 때는, 일반적인 방법과 화살표 함수의 선언 방식은 그저 인자를 선언하는 방법만 다르다고 생각했으나 Vue.js 를 배우면서 큰 차이점을 알게 되어 블로그에 글을 남긴다.
PHP의 new execution generation.. Redvelvet Irene PHP에서 문자열 내에서 RCE를 일으킬 수 있는 트릭을 발견했다. $a = 'phpinfo';echo "${$a()}"; 사실 이미 알고 있었을 수도 있다. PHP는 이런 점에서 정말 재미있는 것 같다.
nCTF Framework 소개 섬네일로 에이프릴 이나은을 보고 싶어서 에이프릴 이나은ㅎㅎ 2018.06.13 에 H3X0R CTF 를 진행했었는데 이 때 개발했던 CTF Framework 이다. 처음으로 nodejs 를 이용하여 개발했던 프레임워크이다. 진짜 nodejs를 맨땅에 해딩하는 식으로 배우면서 해서 어플리케이션 구조나 프로그래밍적인 구조는 굉장히 별로라고 생각하지만, 일단 동작은 잘된다ㅋㅋ github에 1일 1git 하려고 했었는데 지금 시험기간이라서 불가피하게 당분간은 못할 것 같다. 기본적으로 Express Engine 을 사용하여 개발했고, Jade Engine 으로 Rendering 작업을 했다. DB 는 MySQL을 사용했다. 함수형 프로그래밍을 구현하여 개발을 하였다. [*] url : https://githu..
후배가 질문해서 답하는 글 : 스트림은 왜 쓰는 건가요? 스트림을 사용하는 이유는 당연히 '효율성을 위해서'이다. 한 번 예를 들어보겠다. 당신은 농부이다. 땅을 파고 있다. 땅을 판 후, 흙을 강 건너의 창고에 두어야 한다. 그럼 당신은 삽으로 한 번 파고 그 걸 들고 가서 창고에 넣을 것인가 아니면,수레를 하나 옆에 두고 샆으로 그것을 계속 쌓아둔 후 창고에 한꺼번에 넣을 것인가? 효율성의 문제이다.
callback 함수에서 전역변수로 값을 못불러옴 해당 소스가 있다. 해당 소스를 실행해보면 당연히 console.log(); 에 출력되는 값이 undefined 이다. 이유는 nodejs 가 속도 향상을 위해서 비동기 실행을 사용하기 때문이다. 비동기 실행은 함수들을 순서대로 실행하지 않고 한 함수가 실행되고 있는 중에도 뒤의 다른 함수를 실행할 수 있다는 개념이다. 따라서 globalVar에는 정상적으로 arg 라는 값이 들어가긴 하지만, console.log() 함수가 더 먼저 실행되기 때문에 globalVar를 출력하면 undefined 가 뜨는 것이다. 따라서, 우리는 이러한 현상을 해결하기 위해서 Promise 혹은 async await 라는 개념을 도입할 필요가 있다.
블록체인 기술에서 궁금한 것 비트코인이나 이더리움같은 블록체인 기반의 코인들은 Proof of Work 에 대한 보상으로 어느 정도의 코인이 들어온다. 이 때 코인은 현금과 교환할 수 있으니 Proof of Work를 한 컴퓨터에 대해 충분한 보상이라고 할 수 있겠다. 하지만, 블록체인 기술이 적용되는 곳은 단지 가상화폐 뿐만 있는 것이 아니다. 투표시스템, 운송 수단 등등,.. 여러군데 블록체인 기술이 사용되는데 이 때는 Proof of Work 에 대한 보상으로 무엇을 지급하는지? 내 생각에는 해당 보상으로 가상화폐나 그런 것을 줄 수는 없을 것 같은데,,