분류 전체보기
이분 탐색(Binary Search)
오름차순으로 정렬된 배열에서 원하는 숫자(target)을 찾는 알고리즘입니다. 배열 전체의 중간값을 target 값과 비교 중간값이 target 값보다 크면 왼쪽 부분만 선택 왼쪽부분의 중간값을 다시 target 과 비교 정방향으로 푸는 방법과 재귀로 푸는 방법 두 가지가 있습니다. 정방향도 어떻게 보면 개념적으로는 재귀로 푸는 방법과 같은 방법입니다. 개념 정렬된 자료를 반으로 나누어 탐색하는 방법 주의점 : 자료는 오름차순 으로 정렬된 자료여야 한다. 이진트리, 바이너리서치는 코딩 인터뷰 단골문제 퍼포먼스가 아주 좋고 구현하는 중에 dynamic programming, recursion을 볼 수 있다. 특징 linear search (순차검색) : 순서대로 찾는다. 성능평가시 비교대상으로 사용한다. ..
jQuery - $(document).ready() 대신 $()를 사용하자
사용법 $(document).ready(function(){ // 실행할 기능을 정의해주세요. }); 일반적으로 사용되는 방법은 위에서 제시한 예제 코드와 같습니다. .ready()를 사용하는 대표적인 코드들은 아래와 같습니다. $(handler) $(document).ready(handler) $("document").ready(handler) jQuery 3.0 버전 이후부터는 첫 번째에 해당하는 구문만 사용하는 것을 권장드립니다. .ready() Event는 1.8 버전에서는 deprecated 되었으며 3.0에서는 지원하지 않기 때문입니다. $(documet).ready() 대신 $()를 사용하자 $(function(){ // 실행할 기능을 정의해주세요. });
jQuery / Method / .val() - 양식(form)의 값을 가져오거나 값을 설정하는 메소드
.val() .val()은 양식(form)의 값을 가져오거나 값을 설정하는 메소드입니다. 문법 1 .val() 선택한 양식의 값을 가져옵니다. 예를 들어 var jb = $( 'input#jbInput' ).val(); 은 아이디가 jbInput인 input 요소의 값을 변수 jb에 저장합니다. 문법 2 .val( value ) 선택한 양식의 값을 설정합니다. 예를 들어 $( 'input#jbInput' ).val( 'ABCDE' ); 는 아이디가 jbInput인 input 요소의 값을 ABCDE로 정합니다. 예제 1 양식에 텍스트를 입력하고 버튼을 클릭하면, 입력한 값을 출력합니다. Click 예제 2 select 양식에서 값이 바뀌면, 그 값을 출력합니다. One Two Three 예제 3 버튼을 클..
JQuery
개요 JavaScript는 하나의 기업에서 혼자 만들고, 혼자 사용 환경까지 배포해주는 언어가 아닙니다. 표준과 규약이 있고 빠르게 발전하고 있기는 하지만 규약이 제대로 정해지기 전 나왔던 구형 브라우저 (Internet Explorer 9 이하)에서는 JavaScript 함수를 지원하지 않는 것이 있어 코드가 제대로 동작하지 않는 경우도 많습니다. jQuery는, 이런 브라우저 호환성을 해결하고 자주 사용하는 코드를 재사용할 수 있도록 만들어진 라이브러리입니다. 상당히 많은 웹사이트가 현재도 jQuery를 사용하고 있습니다. jQuery 공식 홈페이지 이 강의에서 상세하게 다루진 않을 예정이며, JavaScript 작업이 많이 필요한 홈페이지에는 jQuery 사용을 권장드립니다. 사용법 var span..
CSS의 선택자
개요 CSS는 어떤 태그들에게 스타일 효과를 주는 언어입니다. 그렇다면 어떤 태그에 적용하는지를 정의하는 문법이 필요하게 되는데, 이때의 문법을 선택자 라고 합니다. 선택자 { 속성1: 값1; 속성2: 값2; } CSS는 위 처럼 선택자를 먼저 쓰고 중괄호 {} 안에 속성과 값을 적는 방식으로 이루어져 있습니다. 종류 CSS의 선택자는 다음 3개로 이루어져 있습니다. 태그 선택자 id 선택자 class 선택자 태그 선택자 개요 태그이름 { 속성1: 속성값1; 속성2: 속성값2; } 처럼 사용하며 해당되는 태그 전부에 스타일을 적용시킵니다. 사용법 span { color:#F00; } div { color:#0F0; } id,class 선택자 개요 태그에서 설정한 id나 class 속성에 따라 스타일을 지..
동적 계획법(Dynamic Programming)
복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법 흔히 말하는 DP가 바로 '동적 계획법' 한 가지 문제에 대해서, 단 한 번만 풀도록 만들어주는 알고리즘이다. 즉, 똑같은 연산을 반복하지 않도록 만들어준다. 실행 시간을 줄이기 위해 많이 이용되는 수학적 접근 방식의 알고리즘이라고 할 수 있다. 동적 계획법은 Optimal Substructure에서 효과를 발휘한다. Optimal Substructure : 답을 구하기 위해 이미 했던 똑같은 계산을 계속 반복하는 문제 구조 접근 방식 커다란 문제를 쉽게 해결하기 위해 작게 쪼개서 해결하는 방법인 분할 정복과 매우 유사하다. 하지만 간단한 문제로 만드는 과정에서 중복 여부에 대한 차이점이 존재한다. 모든 답을 만들어보고 그 중 최적해의 점수를 반환..
DB table 한글 입력 되게 만들기
에러사항 해결책 ALTER TABLE univerlist CONVERT TO CHARSET utf8 하면 되지만 FK 제약 조건이 걸려있어 되지않았다. 그래서 외래키를 잠시 끄고 다시 킨다. SET FOREIGN_KEY_CHECKS = 0; ALTER TABLE univerlist CONVERT TO CHARSET utf8 입력 나중에 다시실행 SET FOREIGN_KEY_CHECKS = 1;
[MSA] MSA란 무엇인가? 개념 이해하기
목차 1. MSA란? 2. MSA의 등장배경 3. MSA의 특징 4. MSA의 장점 5. MSA의 단점 MSA? MicroService Architecture의 줄임말 👉🏻 마이크로서비스 아키텍처에 대한 정확한 정의는 없다. 하지만 마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 할 수 있다. 마이크로서비스는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발 언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둔다. MSA의 등장배경 MSA와 Monolithic의 비교 출처 - https://kr.tmaxsoft.com/info/storyTView.do?seq=345 Monolithic Architecture는 소프트웨어의 모든 구성..
[node.js] req.params vs req.body vs req.query
node.js로 프로젝트를 하면서 주소로 받는 params( 라우터 매개변수) 와 req.body 데이터들을 담아서 보낼 때 사용하는 것(유저의 정보 또는 파일) 키 값으로 보내는 것은 알고 있었으나 req.query를 쓰는 선배를 보고 이건 모르면 안될 것 같아서 정리 합니다. req.params - 라우터 매개변수 예를 들어 /:id/:name 경로가 있으면 ":id"속성과 ":name"속성을 req.params.id, req.params.name으로 사용할 수 있다. www.example.com/post/1/jun 일 경우 1과 jun을 받는다. req.body - JSON 등의 데이터를 담을때 사용한다. (주로 POST로 유저의 정보 또는 파일 업로드(formdata)를 보냈을 때 ) 요청 본문에..
[Git] 좋은 커밋 메세지 작성하기위한 규칙들
좋은 커밋 메시지 작성하기 위한 규칙들 코드를 작성하면서 어려운것들중 하나는 이름을 어떻게 짓는지에 대한 고민 바로`Naming` 일 것입니다. 클래스, 함수, 변수 등등 많은 이름을 고민하지만 그 중 하나인 커밋 메시지를 어떻게 작성하여야 좋은 커밋 메시지일지에 대하여 알아보도록 하겠습니다. Commit message 7가지 규칙 제목과 본문을 한 줄 띄어 구분 제목은 50자 이내 제목 첫 글자는 대문자 제목 끝에 마침표 X 제목은 명령문으로, 과거형 X 본문의 각 행은 72자 이내 (줄바꿈 사용) 본문은 어떻게 보다 무엇을, 왜에 대하여 설명 Commit message 구조 기본적으로 commit message 는 제목, 본문, 꼬리말로 구성합니다. 제목은 필수사항이며, 본문과 꼬리말은 선택사항입니다..