일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 다익스트라
- Dijkstra
- Hash
- binary search
- union find
- two pointer
- String
- 그래프
- DP
- Stored Procedure
- 이진탐색
- MYSQL
- Two Points
- SQL
- 스토어드 프로시저
- Brute Force
- Trie
- Today
- Total
목록분류 전체보기 (425)
codingfarm

그래픽 출력도 문자열 출력과 방법은 크게 다르지 않다 아래와 같은 함수들을 사용한다. COLORREF SetPixel(hdc, nXPos, nYPos, clrref) DWORD MoveToEx(hdc, x, y, lpPoint) BOOL LineTo(hdc, xEnd, yEnd) BOOL Rectangle(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect) BOOL Ellipse(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect) 모든 GDI 함수의 첫번째 인수는 항상 DC의 핸들인 hdc이다. SetPixel COLORREF SetPixel( HDC hdc, int x, int y, COLORREF color ); 화면에 점..

1. TextOut 콘솔의 printf와 대응하는 함수라 볼 수 있다. BOOL TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString); docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-textouta 매개변수 매개 변수 기능 hdc DC의 핸들 nXStart 문자열이 출력될 좌표 nYStart lpString 출력할 문자열 cbString 출력할 문자열의 길이 문자열을 출력하기 위한 여러 복잡한 정보들(정렬 등)을 DC에 지정하고 TextOut의 인자로 전달함에 주목할것 TextOut 함수는 널 종료 문자열을 인식하지 않으므로 출력할 문자열의 길이를 인수로 반드시 밝..

1. DC(Device Context)의 필요성 윈도우즈는 세가지 DLL(동적 연결 라이브러리)로 구성되어 있다. KERNEL : 메모리를 관리하고 프로그램을 실행한다. USER : 유저 인터페이스와 윈도우를 관리한다. GDI : 화면 처리와 그래픽을 담당한다.(Graphic Device Interface) 윈도우즈 API 함수의 대부분은 이 세가지 DLL에 의해 제공된다. 출력을 위해선 이 중 GDI에 관심을 가져야 한다. 결론부터 말하면 DC는 GDI를 활용해 화면을 그림에 있어서 부수적인 부분을 최소화 하여 개발자들이 당장 필요로 하는 정보에만 집중하게끔 해주는 역할을 담당한다. 이 DC의 역할을 되새기며 화면 출력에 DC가 필요한 이유를 위한 예를 상황과 함께 들어본다. 상황1 화면에 선을 긋는 ..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass = TEXT("First"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance , LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_..

대부분 키보드로 명령을 입력하면 실행결과는 화면에 출력되는 방식으로 시스템을 사용해왔다. 입룩과 출력으로 사용하는 장치를 바꾸면 입력을 파일에서 읽어오거나 실행결과를 파일로 저장하는 것들이 가능하다. 표준 입출력 장치 리눅스에서는 표준입력장치와 표준출력장치를 아래처럼 정의한다. 표준 입력 장치 : 셸이 작업을 수행하는데 필요한 정보를 받아들이는 장치 표준 출력 장치 : 실행 결과를 내보내는 장치 표준 오류 장치 : 표준 출력과 별도로 오류 메시지를 내보내는 장치 기본적으로 표준 입력장치는 키보드로 설정되어있고, 표준 출력 및 오류 장치는 화면(모니터)로 설정된다. 리눅스는 모든걸 파일로 관리하며 이는 장치도 마찬가지다. 파일 디스크립터(file descriptor) : 셸이 작업에 필요한 파일을 관리하기..

Top_Bar Bottom_bar A B Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt >ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non p..
1. 객체란? JS는 객체 기반의 프로그래밍 언어이며, JS를 구성하는 거의 모든것이 객체이다. 원시값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체다. 원시타입 : 하나의 값만 나타낸다. 객체타입 : 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다. 원시 타입의 값, 즉 원시값은 변경 불가능하지만, 객체는 변경 가능한 값(mutable value) 이다. 이는 추후 자세히 살펴볼것 객체는 0개 이상의 프로퍼티로 구성된 집합이다. 프로퍼티는 키와 값으로 구성된다. var person = { name: 'Lee', age: 20 }; name : 'Lee'와 age: 20 각각의 문장들은 프로퍼티로 분류된다. name과 age는 프로퍼티 키, 'Lee'와 20은 프로퍼티 값이..
비교 연산자 의미 사례 설명 == 동등 비교 x == y x와 y의 값이 같음 === 일치 비교 x === y x와 y의 값과 타입이 같음 != 부동등 비교 x != y x와 y의 값이 다름 !== 불일치 비교 x !== y x와 y의 값과 타입이 다름 타입은 개발자의 의도와 상관없이 JS에 의해 변환되기도 한다.(암묵적 타입 변환) 동등비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다. //동등 비교 5 == 5;// true // 타입은 다르지만 암묵적 타입 변환을 통해 타입을 일치시키면 동등하다. 5 == '5';//true 암묵적 형변환은 결과를 예측하기 어렵게 만들기도 한다. 아래는 안티패턴이므로 가능하면 쓰지 말자 ..
데이터 타입은 값의 종류를 말한다. JS의 모든 값은 데이터타입을 갖는다. JS(ES6)는 7개의 데이터 타입을 제공한다. 원시타입(primitive type)과 객체 타입(object/reference type)으로 분류된다 구분 데이터 타입 설명 원시 타입 숫자(number) 타입 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재 문자열(string) 타입 문자열 불리언(boolean) 타입 논리적 참(true)과 거짓(false) undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 심법(symbol) 타입 ES6에서 추가된 7번째 타입 객체 타입 객체, 함수, 배열 등 숫자 타입(Number Type) ..

값(value) 식(expression)이 평가(evaluate)되어 생성된 결과를 말한다. 평가 : 식을 해석해서 값을 생성하거나 참조하는것 변수 : 하나의 값을 저장하기 위해 확보된 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 // 아래 변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다. var sum = 10 + 20; 리터럴(literal) 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등...) 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation) 값을 생성하기 위한 약속된 표기법이라 볼 수 있다. //숫자 리터럴 3 3 위 코드에서 3은 단순한 아라비아 숫자가 아닌 숫자 리터럴이다. 리터럴로 만들 수 있는 값의 종류(data typ..

식별자(Identifier) 변수나 함수, 클래스 등을 구별해서 식별할 수 있는 고유한 이름. 값이 아니라 메모리 주소를 기억한다. 즉, 메모리상에 존재하는 어떤 값을 식별할 수 있는 이름은 모두 식별자라고 부른다. 변수 선언(Variable Declaration) 변수를 생성하는것 var, let, const 키워드를 사용한다. var score; JS engine은 변수선언을 다음처럼 2단계에 걸쳐 수행한다. 선언 단계 : 변수 이름을 등록해서 JS engine에 변수의 존재를 알린다. 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화 한다. var 키워드를 통한 변수 선언은 선언 단계와 초기화 단계가 동시에 진행된다. 초기화 단계를 거치지 않으면..

자바스크립트는 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도를 목적으로 1995년에 태어났다. 하지만 오늘날의 JS는 프런트엔드와 백엔드 영역의 프로그래밍 언어로 사용할 수 있는 범용 애플리케이션 개발 언어로 성장했다. 현재는 모든 브라우저의 표준 프로그래밍 언어로 자리 잡았다. 크로스 플랫폼을 위한 가장 중요한 언어로 주목받고 있다. 모바일 하이브리드 앱(PhoneGap, Ionic) 서버 사이드(Node.js) 데스크톱(Electron) 머신러닝(Tensorflow.js) 로보틱스(Johnny0Five) 자바스크립트 성장의 역사 초창기 자바스크립트는 웹페이지의 보조적인 기느을 수행하기 위한 한정적인 용도로 사용되었다. 이시기 대부분의 로직은 주로 웹서버에서 실행되었고, 브라우저는 서버로부..
..

우측 상단의 $\equiv$ 버튼을 누르면 숨겨진 버튼이 나온다. Main Mobile Toggle 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 버튼 Lorem ipsum 2012-12-09 - Birthday Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur in magna libero. Sed nec pharetra nunc. Proin eget magna id ipsum eleifend cursus sit amet nec lectus. Nunc quis lacus magna. Aliquam blandit, sapien ut viverra fermentum, elit tortor ornare..

www.w3schools.com/tags/tag_meta.asp 웹브라우저에 특별한 정보를 제공하는 HTML태그이다. 모바일 웹페이지는 화면에 대한 정보를 제공하려고 뷰포트 meta 태그를 사용한다. 대부분의 모바일 장치가 아래 표의 속성을 지원하지만, 일부 모바일 브라우저에서는 target-densitydpi 속성을 지원하지 않는다. 속성 이름 예시 설명 width width=240 width=device-width 화면의 너비 height height=800 height=device-height 화면의 높이 initial-scale initial-scale=2.0 초기 확대 비율 user-scalable user-scalable=no 확대 및 축소의 가능 여부 minimum-scale minimum-..

페이스북은 모바일 웹페이지로 접속하는 사람 수가 스마트폰 애플리케이션으로 접속하는 사람 수의 2배가 넘는다. OS제작 업체에서 제공하는 SDK를 사용해 만든 애플리케이션을 네이티브 애플리케이션이라 한다. 웹으로 만들어진 애플리케이션을 하이브리드 애플리케이션이라 부른다. 하이브리드 애플리케이션으로 만들면 HTML5를 사용해 한번만 개발하면 모든 OS에서 실행 가능하다. 게임을 제외하면 모든 애플리케이션은 하이브리드로 개발 가능하다. 하이브리드 애플리케이션을 제작 가능한 다양한 프레임워크가 있다. 모바일 웹 개발시 주의사항 모바일 OS의 종류가 같아도 내장된 브라우저가 다를 수 있다. 모바일 웹페이지 제작시 아래 내용을 주의해야 한다. over flow 속성을 사용해 스크롤을 넣을 수 없다. 대부분의 스마트..
셸은 사용자가 편리하게 명령을 입력하고 실행할 수 있도록 다양한 특수문자를 제공한다. 여기서는 bash shell을 기준으로 설명한다. 주요 특수문자들 : *, ?, |, ;, [ ], ~, '', "", `` 등... 특수문자 * 임의의 문자열을 나타낸다. 0개 이상의 문자로 대체된다. 명령 실행시 파일명을 넣을 자리에 *을 사용하면 모든 파일을 나타낸다. 사용 예 의미 ls * 현재 디렉터리의 모든 파일과 서브 디렉터리를 나열한다. 서브 디렉터리의 내용도 출력한다. cp * /tmp 현재 디렉터리의 모든 파일을 /tmp 디렉터리 아래로 복사한다. ls -F t* 파일명이 t로 시작하는 모든 파일의 이름과 파일 종류를 출력한다. cp *.txt ../ch3 확장자가 .txt인 ㅍ모든 파일을 상위 디렉터..
manpages.ubuntu.com/manpages/bionic/ko/man1/chsh.1.html 사용자 로그인 shell을 바꾼다. 옵션 -s shell : 지정한 셸(절대 경로)로 로그인 셸을 바꾼다. -l : /etc/shells 파일에 지정된 셸을 출력한다. chsh [option] [username] chsh chsh -l chsh -s /bin/sh user1

shell은 리눅스 커널과 사용자를 연결하는 역할을 수행한다. 리눅스의 기본제공 shell인 bash shell은 UNIX의 shell인 bourne shell과 호환성을 유지하면서 편리한 기능을 제공하여 리눅스 뿐만 아니라 UNIX에서도 널리 사용된다. 1. 셸의 기능과 종류 shell은 사용자와 리눅스 커널사이에서 중간자 역할을 수행한다. bourne shell, bash shell 등 여러 종류가 있다. 1.1 shell의 기능 명령어 해석기 기능 사용자와 커널 사이에서 명령을 해석하여 전달한다. 가령 사용자가 로그인을 하면 shell이 자동으로 실행되어 사용자가 명령을 입력하기를 기다린다. 프롬프트 : 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시 셸의 작동방식 대기상태로 있다가 사용자가 입..

터미널 환경에서 사용가능한 모드형 편집기 유닉스에서 제공한 편집기인 vi를 업그레이드함 1. 리눅스의 문서 편집기 vi의 저장과 종료 명령 키 모드 명령 키 기능 마지막 행 모드 :q vi에서 작업한것이 없을 때 그냥 종료한다. :q! 작업한 내용을 저장하지 않고 종료한다. :w [파일명] 작업한 내용을 저장만 한다. 파일명 지정시 새파일로 저장한다. :wq, :wq! 작업한 내용을 저장하고 vi를 종료한다. 명령 모드 Zz(Shift + zz) 작업한 내용을 저장하고 vi를 종료한다. 입력 모드로 전환 명령 키 긴으 i 커서 앞에 입력한다. a 커서 뒤에 입력한다. o 커서가 위치한 행의 다음 행에 입력한다. I(대문자 i) 커서가 위치한 행의 첫 칼럼으로 이동하여 입력한다. A 커서가 위치한 행의 마..