
HTTP란? 1. 통신규약 2. 웹서버라면 기본적으로 사용하는 형식 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP입니다! (통신 규약: Protocol-언어) 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약입니다. (거의 만능!) 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미합니다. 비유를 해볼까요? 제가 여러분에게 한국어로 말을 걸면 여러분이 제 말을 한국어로 이해하듯이, 갑자기 제가 독일어나 불어로 말한다면 한국로 알아듣지 못하겠죠? 혹은 제가 같은 한국말로 말하더라도 여러분이 잘 알고 있던 표준어가 아닌, 우리가 모르는 아주 아주 작은 어느 지방에서만 사용하는 이해하기 난해한 사투리를 사용한다면요? 이렇듯이 여러분은 ..
마무리: 개발자의 마음가짐 (1) 개발을 잘 한다는건 뭘까요? 단순히 빨리 만들고, 코드를 많이 작성할 줄 아는 개발자라고 좋은 개발자라고 할 수 없습니다. 몇 시간이 걸리든 하나의 코드를 작성하더라도 어떤 코드를 작성하고 있는지 제대로 알아야만 더 좋은 코드를 작성할 수 있게 됩니다. 이번에는 더 좋은 코드를 작성 할 수 있게 도와줄 원칙. KISS, YAGNI, DRY에 대해 가볍게 알아봅니다. KISS Keep it simple, stupid. 소프트웨어를 설계할 때는 언제나 단순하게 해야 한다는 원칙입니다.여기서 주의할 점은, 만약 계획 도시를 처음 설계하기 전에 건물을 먼저 두고 도로를 설계한다면 건물의 크기가 각기 다르게 지어지면서 격자 무늬로 반듯하지 않고 꼬불꼬불한 도로가 나올수 밖에 없습..

Hoisting(끌어올려진다.) 자바스크립트가 코드를 읽어올 때 각 Scope(구역)에 들어있는 var, function과 같은 키워드로 선언된 코드는 아래와 같이 동작합니다. 실제 코드 더보기 console.log(name); // Print: undefined var name = '강승현'; 위 코드를 실행했을때 선언되지 않은 변수를 미리 참조했기 때문에 첫번째 줄에서 참조 에러가 발생해야 하는데 실제로는 발생하지 않습니다. 어떻게 된것일까요? 바로 Hoisting 이라고 불리우는 동작 때문인데요, var, function 키워드로 선언하면 아래와 같이 동작한다고 이해하시면 됩니다. Hoisting 적용 예시 (실제로 이렇게 변환되는것은 아니며, 대략 아래 코드처럼 동작한다는 의미입니다.) 더보기 v..
JS 기본 문법 - 01 더보기 🔥 수업을 원활히 진행하기 위해서는 JS의 기본 문법을 이미 알고 있더라도 자신이 제대로 알고 있는지 확인하며 넘어가주세요! 소소한 구문 설탕과 실무에서 자주 사용되는 코드 패턴이 섞여있어요! 변수 선언, 대입 연산자 변수 선언 veriable var만 쓰지 않으면 됨 Hoisting 떄문에 대입 연산자 REPL 시나리오 var age; // Print: undefined age = 10; // Print: 10 let age2 = 999; // Print: undefined age; // Print: 10 age2; // Print: 999 const name = 'Tim Kang'; // Print: undefined name; // Print: 'Tim Kang' n..
for 문이 있는데 for ... in for...of 문법이 새로 나온 이유는 무엇일까요? 우리가 이것을 고르는 기준은 무엇일까요? 우선, for in VS for of for in (객체 순환) var obj = { a: 1, b: 2, c: 3 }; for (var item in obj) { console.log(item) // a, b, c } ,,,,,,,,, for of는 에러 for ...of (배열 순환) var arr = [1, 2, 3]; for (var item of arr) { console.log(item); // 1, 2, 3 } for in 반복문 : 객체의 모든 열거 가능한 속성에 대해 반복 for of 반복문 : [Symbol.iterator] 속성을 가지는 컬렉션 전용 f..

필수 다운로드 Visual Studio Code (VS Code) 왜 VS Code를 사용할까요? VS Code는 Windows 운영체제를 개발한 마이크로소프트에서 개발하고 관리중인 오픈소스 IDE입니다. 메모장처럼 아주 가볍지만 확장 프로그램을 통해 기능을 끝 없이 확장 가능한 만능 IDE입니다. 여러분이 언젠가 배울 수도 있는 자바스크립트의 상위 집합 언어인 타입스크립트를 개발한 마이크로소프트가 만든 IDE이기 때문에, 타입스크립트를 제일 잘 지원하기도 합니다. 패키지 = 모듈 = 라이브러리 JavaScript란? 1) JavaScript가 존재하기 이전의 웹 생태계 이 당시엔 웹 브라우저가 존재했지만, HTML과 CSS로 아주 간단한 스타일만 적용하는게 일반적이었습니다. CSS 또한 지금처럼 화려하..
문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 제한사항 입력된 수, num은 1 이상 8000000 미만인 정수입니다 입출력 예 n..
문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한사항 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] 풀이(JavaScript) 우선 n(자연수)를 문자로 변환한다. 그 for문을 반대로 돌려 숫자로 변환 뒤 푸쉬한다. 코드 구현 function solution(n) { var str = n.toString(); var answer = []; for(var i =str.length-1; i>=0; i--) { answer.push(Number(str[i])); } return answer; }

인덱스 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다. [ 인덱스(index)의 장점과 단점 ] 장점 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다. 전반적인 시스템의 부하를 줄일 수 있다. 단점 인덱스를 관리하기 위해 DB의 약 10%..
문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한사항 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 "수박수" 4 "수박수박" 풀이(JavaScript) 인자에 들어갈 값을 모르기 때문에 n만큼 들어간다고 repeat를 설정해놓고 substr를 i만큼 자른다. 코드 구현 function solution(n) { var answer = ''; let row = "수박".repeat(n) for (let i=0;i