일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Two Points
- Brute Force
- Trie
- union find
- Stored Procedure
- SQL
- binary search
- 다익스트라
- Dijkstra
- Hash
- 이진탐색
- 스토어드 프로시저
- DP
- MYSQL
- 그래프
- String
- two pointer
- Today
- Total
목록분류 전체보기 (418)
codingfarm
비교 연산자 의미 사례 설명 == 동등 비교 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 커서가 위치한 행의 마..
itmining.tistory.com/20 클래스 변수와 인스턴스 변수 public class test { int iv; // 인스턴스 변수 static int cv; // 클래스 변수 void method() { int lv; // 지역 변수 } } 인스턴스 변수 인스턴스 변수는 인스턴스가 생성될 때 생성됩니다. 그렇기 때문에 인스턴스 변수의 값을 읽어오거나 저장하려면 인스턴스를 먼저 생성해야합니다. 인스턴스 별로 다른 값을 가질 수 있으므로, 각각의 인스턴스마다 고유의 값을 가져야할 때는 인스턴스 변수로 선언합니다. 클래스 변수 클래스 변수는 인스턴스 변수에 static만 붙여주면 됩니다. 인스턴스 변수는 각각 고유한 값을 가지지만 클래스 변수는 모든 인스턴스가 공통된 값을 공유하게 됩니다. 한 클래..
클래스란 객체를 정의해놓은 것으로 객체를 생성하는데 사용된다. 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다. 객체와 인스턴스 인스턴스화(instantiate) : 클래스로부터 객체를 만드는 과정 인스턴스(instance) : 클래스로부터 만들어진 객체 가령 '책상은 객체'라고 할때 '책상은 책상 클래스의 인스턴스' 라고 할 수 있다. 인스턴스와 객체는 같은 의미이므로 엄격히 구분할 필요는 없지만 문맥에 따라 구분할것 객체는 속성(property)과 기능(function)의 두 구성요소로 이루어 지며 각각 주로 멤버변수(memer variable)와 메서드(method)를 지칭한다. TV를 예로들면 TV의 속성과 기능은 아래와 같다. 속성 : 크기, 길이, 높이, 색상, 볼륨, 채널... ..
배열 생성 Java에서 정수형 배열을 만드는 방법은 아래와 같다. type[] varname; int[] score; string[] name; type varname[]; int score[]; String name[]; 크게 2가지 방법이 지원되며 가능하면 전자의 방법을 사용하기를 추천한다. int[] score = new int[5]; 배열 초기화 기본형 배열의 초기화 int[] score = new int[5]; score[0] = 100; score[1] = 90; score[2] = 80; score[3] = 70; score[4] = 60; 참조형 배열의 초기화 String[] name = new String[3]; name[0] = new String("Kim"); name[1] = new..
4.1 개요(Overview) CPU 이용의 기본 단위 스레드 ID, 프로그램 카운트(PC), 레지스터 집합(Register Set) 그리고 스택으로 구성된다. 같은 프로세스에 속한 스레드 끼리는 코드, 데이터섹션, 열린파일이나 신호같은 OS 자원을 공유한다. 멀티스레드 기능을 통해 프로세스는 동시에 하나 이상의 작업들을 수행할 수 있다. 4.1.1 동기(Motivation) 현대의 컴퓨터에서 동작하는 거의 모든 응용 프로그램들은 다중 스레드를 이용한다. 웹 브라우저는 이미지 또는 텍스트를 표시하는 하나의 스레드와 네트워크로부터 데이터를 가져오는 또다른 스레드를 가질 수 있다. 워드프로세서는 그래픽을 표시하는 스레드와 키보드로부터 입력을 받는 스레드, 백그라운드에서 문법을 체크하는 스레드를 가질 수 있다..
manpages.ubuntu.com/manpages/focal/en/man1/find.1.html 조건에 맞는 파일의 디렉터리를 찾는다. grep이 파일 내용을 검색하는데 반해 find는 파일의 생성 일자와 이름, 소유자 등 다양한 조건에 맞는 파일을 찾는다. 옵션 -name filename : 파일명으로 검색한다. -type filetype : 파일 종류로 검색한다. -user loginID : 지정한 사용자가 소유한 모든 파일을 검색한다. -per access_authority : 지정한 사용 권한과 일치하는 파일을 검색한다. 동작 -exec : 검색된 파일에 명령을 실행한다. -ok 명령 : 사용자의 확인을 받아서 명령을 실행한다. -print 명령 : 검색된 파일의 절대 경로명을 화면에 출력한다(..
manpages.ubuntu.com/manpages/focal/en/man1/grep.1posix.html 파일 내에서 특정 문자열을 검색할 때 사용한다. 정규 표현식을 이용한 복잡한 검색도 가능하다 옵션 -i : 대문자$\cdot$소문자를 모두 검색한다. -l : 지정한 패턴이 포함된 파일명을 출력한다. -n : 행 번호를 출력한다. grep root /etc/passwd grep -l hello *.c grep -n unix ~/*.txt 인자로 지정한 문자열을 검색할 수 있다. 실습을 위해 /etc/services 파일을 data 파일로 복사했다. -n 옵션으로 검색된 행의 번호도 함께 출력 가능하다. vim으로 확인결과 126번째 줄에 NNTP가 있음을 볼 수 있다.