SQL (관계형 DB) ==> 데이터를 정해진 데이터 schema에 따라 테이블에 저장 ==> 데이터는 관계를 통해 여러 테이블에 분산 ==>데이터는 테이블에 레코드로 저장된다. 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. ( schema를 준수하지 않은 레코드는 테이블에 추가할 수 없다.) ==> 이때 DB에 데이터 중복이 일어날 수도 있다. 이를 피하기 위해 '관계'를 이용한다. ==> 하나의 테이블에 중복이 없기에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없다. 장점 데이터 중복이 없다. 명확하게 정의된 스키마로 데이터를 다루기에 데이터 무결성이 보장된다. 단점 유연하지 않고, 데이터 스키마를 사전에 계획해야 한다. (나중에 수정하기 힘듦)..
@ 정규 표현식(Regular Expression)이란? 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어. 정규식이라고도 부르며, 보통 RegEx 또는 RegExp라고 쓴다. 특정한 조건의 문자를 "검색, 추출, 치환"하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다. @ 기능별 정리 기본 메타 문자 기호 설명 . 모든 문자 일치 | OR 왼쪽 문자(혹은 패턴) 혹은 오른쪽 문자(혹은 패턴)과 일치 [] 문자 집합 구성원 중 하나와 일치 [^] 문자 집합 구성원을 제외하고 일치 - 범위 정의 ex) [A-Z] \ 다음에 오는 문자를 이스케이프 수량자 기호 설명 * 앞의 문자나 부분식이 0개 이상 탐욕적으로 찾기 *? 탐욕적 수량자 *를 게으른 수량자로 바꿔 ..
@ 시간 복잡도란? 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것. 알고리즘의 시간복잡도는 주로 Big-O 표기법을 사용하여 나타내고 있다. 알고리즘의 logic을 코드로 구현할 때, Time Complexity를 고려한다는 것은 무엇일까? 입력값의 변화에 따라 연산을 실행할 떄, 연산 횟수에 비해 시간이 얼마나 걸리는 가를 의미한다. 따라서 효율적인 알고리즘을 구현한다는 것은 입력값에 따른 시간의 비율을 최소화한 알고리즘을 구성했다라 생각하면 된다. @ Big-O 표기법 ==> 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마나 걸리는가 Big-O 표기법은 상한 점근, 즉 최악의 경우를 고려하는 표기법이다. 최악의 경우를 고려하므로, 프로그램..
@ HTTP란? ==> HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜. 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다. 클라이언트-서버 프로토콜이란 수신잘 측에 의해 요청이 초기화되는 프로토콜을 의미한다. 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오 등 불러온(fetched) 하위 문서들로 재구성된다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르고, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부르는데, 이렇게 클라인트와 서버들은 개별적인 메시지 교환에 의해 통신한다. HTTP는 확장 가능한 프로토콜이며 어플리케이션 계층의 프로토콜로, 신뢰 가능한 전송 ..
깃허브를 사용하는 방법을 항해99를 통해 배웠지만 아직 완전한 습득이 이루어지지 않았기에 계속해서 스스로 공부하고 연구할 계획이다. 깃은 기본적으로 online 공통 repository에 프로젝트를 올리고 각자 branch라는 개념으로 자신의 작업 repository를 열어 작업을 한다. 서로가 작업한 것을 main repository에 올리기 전에 비교하고 수정을 하는 데, 이 때 작업한 것이 staging area에 남게 된다. 이것을 commit이라는 작업을 통해 Local repositoy에 올라가게 되고 같이 작업하는 개발자들과 서로 작업한 부분이 충돌이 나는지 합칠 수 있는지 확인을 하고 최종적으로 merge를 한다. merge한 것을 main repository에 올리면 최종 수정을 한 pr..