분류 전체보기 433

[Linux] 리눅스 gcc 에서 c언어 컴파일, 32비트 어셈블리 코드 확인하기

c언어를 컴파일 하는 과정에서 어셈블리 코드를 확인하는 과제가 있었는데 리눅스에서 컴파일했던 기억이 까마득해서 에러때문에 고생좀 했다. 우선 방법은 간단하다. 그냥 .c형식의 c소스코드를 작성해주고 gcc -O1 -S -m32 test.c 이렇게 적어주면 된다. -m32는 32비트 어셈블리를 확인하겠다는거고 -S는 어셈 코드를 보겠다는거고 -O1은 최적화 단계를 설정해주는 거다. 이것도 O이 숫자인줄 알고 계속 하다가 뭔가 생겨먹은게 이상해서 그제야 알아차린거다. 지금 생각해보면 웃기긴한데 심각하게 왜 안되는지 이리저리 애먹었다... ㅋㅋ 아마 Optimization이라는 뜻인걸까? 특히 c를 컴파일해줄때 bits/libc-header-start.h: No such file or directory 오류 ..

Linux 2021.05.20

[Dev] 어디서 많이 본듯한 FOO의 기원은?

SQL에서 테이블을 생성해주는데, 리터럴로만 딱 하나 만들어주는 예제를 공부하다가 FOO 로 테이블 이름을 지정해주는 예제를 보았다.  그런데 뭔가 느낌이 FOO라는게 어디서 많이 본듯했다.  그래서 검색해보니 아래의 블로그가 나왔고, 답을 얻었다.  www.hooni.net/xe/study/3734 프로그래밍에서 foo, bar 함수의 유래 - 후니넷프로그래밍 예제를 보면서 함수를 사용할 때 함수 이름에서 foo(), bar() 를 자주 접하게 된다. 사실 의미와 유래는 크게 중요하지 않지만 뭐든 알고 있으면 나쁠게 있나 ㅋㄷ; 위키피디아 설명에www.hooni.net 아주 잘 설명해주셨다.  Front observation officer로 정찰병이라는 의미를 담고 있다고 한다. 목적을 달성하기 위한 ..

개발 정보 2021.04.27

[OracleDB] sql에서 set unused는 왜 쓸까요?

sql 공부 중에 그냥 슬쩍 지나갈법도 한데, 유난히 고민되는 구문이 하나 있었다. set unused인데, 평소에 그냥 읽어보고 넘어갔었는데, 오늘은 대체 이걸 왜 쓰는걸까라는 생각이 문득 들었다. 그래서 검색해보았는데 www.gurubee.net/article/48959 칼럼 UNUSED의 용도 초보시절 Column 을 UNUSED로 변경하면 임시로 사용못하게 했다가 USED로 바꾸면 다시 사용이 되는줄 알고 쿼리 실행했다가 고생한적이 있습니다...(d.. www.gurubee.net 이 블로그에 너무 정리를 잘 해주셨다. 간단하게 말하자면, unused로 마킹을 해놓음으로써 그 이후로는 액세스도 할 수 없다. 또한 다시 되돌릴 수도 없다. unused를 하더라도 사용된 공간을 환원받을 수도 없다. ..

Database/OracleDB 2021.04.26

[C++] 마이크로소프트 c++ 도큐먼트

c++ 관련해서 이것저것 검색하다가 마이크로소프트 c++ 머시기가 뜨길래 들어가보니 마소에서 제공하는 c++ 도큐먼트같은게 떴다. 살짝 훑어봤는데, 나름 잘 정리되있는 것 같더라. pdf로 다운도 받을 수 있어서 다운 받았는데, 번역도 잘 되있고, 꽤나 괜찮아 보인다... 내가원하는건 스레딩이었는데, 음... 안나와있다. 그래도 나름 괜찮은 자료이니 모셔서 저장하기... 언젠간 읽어볼 일이 생길듯. docs.microsoft.com/ko-kr/cpp/cpp/templates-cpp?view=msvc-160 템플릿 (C++) 자세한 정보: 템플릿 (c + +) docs.microsoft.com

C & C++/C++ 2021.04.19

[Oracle DB] ora-12560 문제 발생

실습을 진행하려고 프롬프트에서 sql에 진입했는데 맞는 비밀번호를 쳐도 에러가 떴다. ora- 12560이라고 뜨던데, 내가 건드린거라고는 저번에 컴퓨터를 끄기 전에 속도를 좀 빠르게 하고 싶어서 oracle서비스를 "서비스" 에서 자동 -> 수동으로 바꿨던 기억이 있었다. 검색해보니 아니나 다를까 수동으로 바꿨기 때문에 실행이 안되는 상태여서 접속이 안된다는 에러였다. 서비스에 들어가면 이렇게 3개의 란이 있을텐데, 이걸 다 자동으로 바꿔주는 게 좋다. 막상 쓸려고 sql들어갈때 에러나면 또 다시 켜줘야 하고, 귀찮다. 속도차이도 뭐 별로 없는 것 같으니. 실행상태로 둘 수 있도록 자동으로 바꿔주자.! travelbeeee.tistory.com/396 ERROR:ORA-12560: TNS:protoco..

Database/OracleDB 2021.04.19

[Unreal] 언리얼엔진4 찍먹 후기

최근에 언리얼엔진5 사전 영상이 나와서 완전 반해버려서 언리얼엔진을 공부해보기로 했다. 아래는 유튜브에서 언리얼엔진 5라고 검색하면 바로 뜨는 영상인데, 진짜 멋있다. 아마 올해 말? 에 정식으로 내놓는다는 얘기가 있었다. www.youtube.com/watch?v=9W-Q-JSQf58 한번 보면 알 수 있는데, 진짜 그래픽이 많이 발전한것 같다. 지금 있는 버전은 4버전이라서 급하게 에픽게임즈에도 가입해서 언리얼 엔진을 다운 받았다. 언리얼 엔진 소스코드를 받아볼 수 있는 에픽게임즈 organization 이 깃허브에 있던데, 언리얼이랑 깃허브랑 연동하니까 바로 초대장이 날라왔다. 그래서 가입해서 잠깐 소스코드를 열어봤는데, 흠... 뭔지 모르겠는건 당연했고, 분량이 진짜 많았다. 베르의 언리얼 엔진 ..

Unreal Engine 2021.04.09

[VS] visual studio 2019 코드 비교하기

visual studio 에 코드 비교하기 기능이 있는 줄 몰랐는데, 있었다... 여지껏 vscode로 가져다가 비교하는 짓을 반복했었는데, 난 바보다... 검색해보니 있긴있는데, 좀 불편하게 지원해준다. vscode같은 경우는 그냥 파일하나 클릭해서 비교할 대상파일도 또 선택해서 클릭해주면 바로 지원해주는데 vs같은 경우는 내가 직접 타이핑해야 한다. 그럼에도 유용하다. ㅎㅎ 터미널창에 Tools.DiffFiles C:\Users\user\source\repos\chapter11\BinaryTreeSearch.c C:\Users\user\source\repos\chapter11\2.c 이런식으로 써주면 된다. Tools.DiffFiles 뒤에 경로 두개를 써준다. (초록색이 경로1, 빨간색이 경로2) ..

개발툴 2021.03.18

[Notion] Notion 사용하기

이번에 꽤 괜찮은 학습 노트를 발견했다. 노션 이란 건데 무료이다. 마크다운 지원해서 코드도 저장할 수 있다. 이걸로 학습 노트로 사용해봐야겠다. 아래에서 데탑 버젼으로 받아서 쓰면 된다. https://www.notion.so/ko-kr Notion (노션) – 모든 팀을 위한 하나의 워크스페이스 Notion은 단순한 워드프로세서가 아닙니다. 내 스타일에 맞게 커스텀해서 사용하세요. www.notion.so

개발툴 2021.03.06

[C] 4년이 지나서 다시보는 C언어 - 핵심 정리

윤성우님께서 쓰신 "열혈 자료구조"를 보려고 너무 오랜만에 책을 펼쳤는데, 순간 당황했다. c언어에서 사용되는 -> 기호가 무슨 뜻이었는지 기억이 가물 가물 하면서 기억나질 않았다. 그래서 당황해서 급하게 서현우씨께서 쓰신 "이것이 c언어다" 책을 펼쳤다. (기억이 안날만도 하다. 2년의 공백이 너무 컸다.) 지금 4년 만에 다시 펼쳐보는 것 같다. 기본기를 소홀히 한 대가다. 요즘 들어서 느끼는 게 있는데, 아무리 서비스 위주의 기술들 중에서 핫한 기술들이 뜨고 이것저것 나오더라도 기본기는 언제나 중요하다는 것을 느낀다. 아무리 빠르고, 성능 좋은 라이브러리라 하더라도 c++과 c를 기반으로 작성되어있는 경우가 많았고, 성능이라는 면에서 아직도 이 둘을 따라올 언어가 없다고 생각한다. 그러니 기초적으로..

C & C++/C 2021.03.06

[기술서적] 생계형 개발자, SI에서 살아남기 개정판 - wikidocs - 리뷰

삼일절 저녁이라 할것도 없어서 Wikidocs 에서 추천책들을 살펴보고 있었는데 이 책을 발견하게 되었다. 평소에 즐겨보던 블로그나 기술 유튜버들이 말하던 SI라는 생태계에 대해 설명하고 있다길래 호기심이 발동했다. 분량은 그리 많지 않다. 그냥 앉아서 저녁시간에 느긋하게 읽어보면 될만한 정도의 분량이다. 코드나 이런걸 설명하는 책이 아니라 저자 자신의 경험과 조언 그리고 실제 SI 환경에 흐르는 분위기와 노하우들을 알려준다. 막연하게 설명하는 게 아니라 꽤 구체적으로 실제 프로젝트가 어떻고 문화가 어떻고 하는 구체적인 이야기까지 해준다. 그리고 저자만의 충고도 이야기하는데 그 이야기들은 사실 어떤 직업을 택하든 통용되는 이야기라는 생각이 들었다. 아주 기초적인 내용부터 시작해서 심지어 "능력이 없는 개..

[JS] 모던 자바스크립트 입문 8장 함수 예제 - 랜덤 그리기

// 이 코드는 모던 자바스크립트 입문(徹底マスターJavaScriptの教科書) 에서 인용한 것입니다. // [ISBN #978-4797388640]. Copyright 2017 by 磯博 모던 자바스크립트 입문 중에서 8장 (함수) 의 8-22 예제를 첨부한다. 원래예제와는 조금 다르게 선이 뻗어나갈때마다 색이 바뀌도록설정했다. 재밌는 예제다. 위처럼 랜덤으로 선이 뻗어나간다. 시간이 별로 없어서 책을 빠르게 읽었는데 중간에 있던 예제들은 그냥 지나칠 수가 없어서 하나 하나 전부 만들어봤는데 정말 재밌는 예제가 많다. 서평이 굉장히 좋은 책이었는데 맞는것같다. (물론 무슨 코드지? 하고 한동안 들여다본 코드들도 있다. 특히 좌표관련 코드이다. 그것들도 막 이해가 안되는 그런게 아니라 좀 들여다보면 이해가..

Web/javascript 2021.03.01

[JS] call, apply, bind

call은 그냥 인수를 콤마로 하나씩 전달하면 된다. apply는 배열로 던져주면 된다. bind는 영구히 this값을 고정하고 싶을 때 해당 객체를 인수로 주면 된다. call과 apply는 결국 어떤 this값을 사용하고 싶을 지를 결정한다고 보면 된다. this 값이 핵심이다. 어떤 특정 함수에서 this값이 필요없는 경우가 있는데, 이 경우에는 call과 apply의 인수로 null을 준다. null대신 어떤 값이든 줘도 상관없다. 어차피 this 지정이 필요없기 때문이다.

Web/javascript 2021.03.01

[JS] 자바스크립트 with 문

자바스크립트에 대해 궁금한 걸 몇개 검색하다보니 with 문이라는 구문이 눈에 들어왔다. 처음 보는 구문이라 자세히 살펴보니 재밌는 기능이라는 생각이 들었다. 어려운 기능도 아니다. 쉽다. { } 안에 있는 수식들을 잘 살펴보면 Math 가 빠져있다. 그 이유는 이미 with 에서 Math를 생략하고 써도 된다고 말해주고 있기 때문이다. 결과도 y값 찍어보면 잘 나오는 걸 확인할 수 있다. 반복적으로 사용하는 경우에 코드를 줄일 수 있는 좋은 방법인 것 같다.

Web/javascript 2021.02.28

[JS] 자바스크립트의 함수는 1급 객체이다.

자바스크립트의 함수는 1급 객체이다라는 말이 있다. 이 말은 무슨 말일까? first-class-citizens 라고 할 수 있다. 보통 다른 객체들에게 적용 가능한 연산을 모두 지원하는 객체를 말한다. 이러한 연산에는 매개변수로 전달되고, 함수에서 반환되고, 수정되고, 변수에 할당되는 작업이 포함된다. 쉽게 말해서 프로그래밍 언어에서 type을 전달, 반환, 할당할 수 있는 경우 해당 type을 1급 객체로 간주한다. 그러므로 javascript에서 함수는 다음과 같은 조건을 만족하므로 1급 객체라고 할 수 있는 것이다. 1. 함수를 변수나 데이터에 할당할 수 있다. 2. 함수를 인자로 전달할 수 있다. 3. 함수를 리턴할 수 있다.

Web/javascript 2021.02.28

[기술서적] 모던 자바스크립트 입문 - 이소 히로시

jsp -> spring (스프링은 퀵스타트로 공부했다. ) 까지 하다가 친구들이 깃허브에 node.js로 만든 프로젝트들이 있길래 관심이 생겨서 자바스크립트를 한번 제대로 보고 싶은 마음이 생겼다. 책추천을 몇권 골라보았다. 인사이드 자바스크립트라는 책이 처음 있었고, 이후에 자바스크립트 완벽가이드란 책이 있었는데, 우선 인사이드 자바스크립트는 평가도 좋고, 분량도 딱 적당했지만, (생각보다 얇다) 뭔가 실습할만한 좋은 예제들이 별로 없다고 생각되어서 패스했다. 자바스크립트 완벽가이드는 분량이 너무 많다고 여겨져서 부담이 되긴 했는데, 분량 때문이 아니라 다른 사람들의 평을 들어보니 "좋은 책인건 맞다. 그런데 출간된 지 꽤나 시간이 흘러서 맞지 않는 부분이 있다. 그리고 조만간 신 개정판이 나온다. ..

[JS] 가중산술평균과 이미지 필터링 기능의 구현

모던 자바스크립트 입문을 공부하는 도중 좀 복잡한 코드를 마주하게 되었다. 코드를 읽다가 도움이 될 수 있는 단서를 하나 발견했는데, 바로 가중 산술 평균이다. 가중 산술 평균은 가중 산술 평균은 자료의 평균을 구할 때 자료 값의 중요도나 영향 정도에 해당하는 가중치를 반영하여 구한 평균값이다. 라고 위키에 정의되어 있다. 그리고 아주 아주 친절한 부가설명도 존재한다. 출처: ko.wikipedia.org/wiki/%EA%B0%80%EC%A4%91_%EC%82%B0%EC%88%A0_%ED%8F%89%EA%B7%A0 딱 한번만 읽어봐도 이해가 될 정도로 간단한 예제이다. 즉 가중치를 분모로 잡아서 모두 더하고, 분자에는 해당 값들과의 곱을 더해서 평균을 구하는 것이다. 따라서 위처럼 픽셀의 정중앙의 값을 ..

Web/javascript 2021.02.26

[JS] 브라우저는 어떻게 동작하는가? 요약 및 정리(1)

브라우저의 동작에 대해서 아주 잘 설명해놓은 글이 있어 이를 읽고 간단하게 정리해보고자 한다. 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 자원의주소는 URI로 표현된다. 최근 브라우저들이 표준 명세를 따르고 있기 때문에 호환성 문제가 줄어들었다. 브라우저의 기본 구조 브라우저의 기본 구조는 아래와 같다. 각 구성을 간단하게 설명하면 아래와 같다. 1. 사용자 인터페이스: 우리가 브라우저를 쓸때 보이는 화면이다. 이전버튼, 다음 버튼, 페이지 창 등이 있는 곳이다. 2. 브라우저 엔진: 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어한다. 3. 렌더링 엔진: 사용자가 요청한 컨텐츠를 표시한다. HTML같은 걸 파싱해서 화면에 표시한다고 보면 된다. 4. ..

Web/javascript 2021.02.24

[JS] 모던 자바스크립트 입문- 생명 게임 시뮬레이터 (2차원 배열의 생성)

모던 자바스크립트 입문의 17장에는 생명 게임 시뮬레이터 예제가 있다. 이 예제에서 화면의 view에 나타낼 픽셀을 배열로써 생성하는 파트가 있다. 코드는 다음과 같다. // 격자의 크기 state.nx = nx; state.ny = ny; // 셀의 상태를 저장하는 2차원 배열을 생성하고 초기화한다 state.cells = new Array(ny); for(var ix=0; ix

Web/javascript 2021.02.24

[JS] 특정 셀(ix,iy) 주변의 마리 수 구하기 (생명 게임) - 모던 자바스크립트 입문

최근에 모던 자바스크립트 입문이라는 책을 통해 자바스크립트를 공부 중인데, 17장에 보면 MVC 모델을 기반으로 하여 생명 게임 시뮬레이터를 실습하는 부분이 있다. 상당히 퀄리티 좋은 예제이고, 챕터 전체가 한 예제를 다루는 (입문으로 치면) 꽤 난이도 괜찮은 예제이다. 예제 중에서 특정 객체의 메소드가 이해가 되지 않아서 직접 어떻게 동작하는 지 그려보면서 알아봤는데, 이런 방법도 있구나 하고 놀라게 되었다. 해당 코드는 다음과 같다. state.getSumAround = function(ix,iy) { var dx = [ 0, 1, 1, 1, 0,-1,-1,-1]; var dy = [ 1, 1, 0,-1,-1,-1, 0, 1]; // 주기적 경계 조건 for(var k=0,sum=0; k

Web/javascript 2021.02.24

[JS] innerHTML, innerText, textContent 각각의 차이점에 대해

예제를 진행하면서 자주 등장하는 이 세가지의 기능이 무엇이 다른지 궁금해서 알아보았다. // HTML 이 다음과 같다고 가정할 때, Keep Calm and Drink Coffee Sometimes, Tea // JavaScript const statement = document.querySelector('#statement'); statement.innerHTML; // Keep Calm and Drink CoffeeSometimes, Tea statement.innerText; // Keep Calm and Drink Coffee statement.textContent; // Keep Calm and Drink CofeeSometimes, Tea 위의 하나의 코드만으로도 세가지의 차이점을 명확하게 알..

Web/javascript 2021.02.23

[JS] js파일 테스트하기 -> python을 활용한 간이 서버 (초간단 서버 운용)

로컬에 있는 텍스트파일의 내용을 읽어서 웹페이지에 표시하는 스크립트를 짰는데, 안타깝게도 firefox의 정책이 바뀐 듯하다. 분명 설명에는 firefox에서는 로컬의 파일을 읽어서 사용할 수 있다고 했는데, 해당 책이 좀 시간이 지나서인지는 모르겠는데, 동일출처정책에 위반된다는 에러때문에 아예 읽어올 수 조차 없었다. 처음 설명을 보면서 브라우저에서 로컬파일을 읽는다고? 해서 갸우뚱하지만 편하게 진행될거라 여겼는데, 역시나 다른 루트의 파일을 읽어오는 건 불가능했다. 뭐 firefox가 업데이트되면서 최신정책으로 바뀌면서 그렇게 된 걸 수도 있다. 이렇게 되면 예제를 실행시킬 수가 없게 되는데, 그래서 찾게 된 방법이 완전 초간단한 임시서버를 운용해서 거기서 나의 html예제를 실행시켜보려고 했다. 우..

Web/javascript 2021.02.23

[JS] 자바스크립트 코드 난독화 및 해제사이트

모던 자바스크립트 입문 이라는 책에서 15장 마지막 예제가 있는데, (그림판을 만드는 예제이다.) 예제 파일에 있는 코드가 난독화되어있다. 아마 설명을 보고 직접 작성하라는 뜻이겠지만... 답답해서 먼저 복호화 시켰다. 아래는 코드 난독화를 다시 복호화시킬 수 있는 사이트이다. www.strictly-software.com/unpack-javascript Javascript Unpacker Tool - Strictly Software This Javascript unpacker tool has now been upgraded to allow it to unpack multiple eval statements. So if your packed code has itself been packed a few t..

Web/javascript 2021.02.22
반응형