분류 전체보기 210

배열 복사, indexOf

그 동안에 쓴 글이 의미 없진 않지만 노력에 비해 매우 잘못된 방향성을 가지고 있단 것을 알게되었다 지금이라도 알았으니 다행이고 알았으면 바뀌려고 노력해야지 제목은 나중에 찾기 편하게 검색용 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요 입력 출력 [3, 76, 24] [3, 1, 2] [30, 10, 23, 6, 100] [2, 4, 3, 5, 1] 먼저 어떻게 할지 생각을 해보자 1. 배열을 복사해 순서대로 정렬 2. 복사한 배열을 정렬하고 비교 해서 완성한다 배열 복사는 쓰레드 문법으로 해결 정렬까지 완료 얕..

실행 컨텍스트 (스코프, 호이스팅, 렉시컬 환경)

실행콘텍스트 : 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 JS에선 스택을 사용한다 콜스택(call stack): 스택의 한 종류, 가장 위에 쌓여있는 콘텍스트와 관련된 코드를 실행하는 방법으로 코드의 환경 및 순서를 보장 // ---- 1번 var a = 1; function outer() { function inner() { console.log(a); //undefined var a = 3; } inner(); // ---- 2번 console.log(a); // 1 } outer(); // ---- 3번 console.log(a); // 1 코드실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out) + outer(재개) ..

null과 undefined

둘 다 없음을 나타내는 값인데 뭐가 다를까 undefined : 일반적으로는 자바스크립트 엔진에서 값이 있어야 할 것 같은데 없는 경우, 자동으로 부여, 직접 지정할 수도 있는데 엔진이 그런건지 사용자가 그런건지 확인할 수 없기에 '없다'라는 것을 명시적으로 표현할 땐 사용을 하지 말자 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 .이나 []로 접근하려 할 때, 해당 데이터가 존재하지 않는 경우 return 문이 없거나 호출되지 않는 함수의 실행 결과 null : ‘없다’를 명시적으로 표현할 때 사용한다 console.log(typeof(null)) // object 이건 유명한 JS 자체 버그다 그리고 JS에서는 대소문자를 구분해 null, Null,..

깊은 복사와 얕은 복사

기본형의 경우 값을 복사한 다음 다른 값을 재할당할 경우에 그 식별자가 가리키는 주소값만 변경되어 문제가 없지만 참조형은 다르다 obj를 위한 메모리 공간이 따로 존재하고 만약 obj = obj2를 실행한다면 obj와 obj2는 같은 공간을 공유하게 된다 따라서 obj2의 속성값을 바꿀 경우 obj에 영향을 줄 수 있다 // user 객체를 생성 var user = { name: 'mjm', age: 25, }; // 이름을 변경하는 함수, 'changeAge'을 정의 // 입력값 : 변경대상 user 객체, 변경하고자 하는 이름 // 출력값 : 새로운 user 객체 // 특징 : 객체의 프로퍼티(속성)에 접근해서 age를 변경했네요! -> 가변 var changeAge = function (user, ..

데이터 타입과 메모리

이터 타입은 크게 두 가지로 나뉜다 기본형과 참조형, 이 둘의 구분 기준은? => 값의 저장 방식과 불면성 여부 -값의 저장 방식 기본형 : 값이 담긴 주소값을 바로 복제 예) let num = 10 인 경우 10이란 값이 담긴 메모리의 주소값을 num에 저장 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제 let arr = [ 1, 2 ,3] [1이 들어있는 주소값, 2가 들어있는 주소값, 3이 들어있는 주소값] 이 묶음을 가르키는 주소값이 arr에 저장된다 => arr은 주소값의 묶음을 가리키는 것이며 값 자체의 주소값을 가지진 않는다 => arr안에 1을 가져오기 위해선 arr이 가진 주소값으로 가서 1을 가리키는 주소값을 찾아야한다 -불변성 여부 기본형 : 불변성을 띔 참조..

Git와 GitHub , Git Flow

모든 일이란 게 그렇다 한 번에 처리 되는 경우는 드물고 여러 번 수정 작업을 거치고 되돌리기도 한다 프로젝트를 진행할 때도 마찬가지다 결국 수정을 하고 개선을 해야하는 경우가 많다 혹은 다 엎고 다시 작업해야할 수도 있다 그런데 이렇게 수정을 할 때마다 파일이나 폴더를 새로 만들어야할까? 그래서 만들어졌을 것이다 자세한 역사는 모르지만 많은 사람들이 이것을 사용하고 아주 잘 사용하고 있다 개인부터 개인이 아닌 팀이라는 단체에서도 보다 큰 회사에서도 사용을 한다 그럼 결국 이제 개발자가 되길 희망하는 나도 알아야하고 사용해야하며 익숙해져야만 한다 솔직히 이제 첫 프로젝트에서 처음 협업이란 것을 해보고 이제 써본 나는 사용 이유는 알겠는데 사용법은 잘 모르겠다 아직 잘 모르니 뭐만 하면 에러만 나오고 생각..

5주차

전반적인 내용은 4주차와 같다 오히려 5주차보다 4주차에서 했던 메타태그에 og를 이용하는 부분이 가장 어려웠다 그래서 별 문제 없이 해나가는 중 역시나 문제가 생겼다 내가 만든 팬명록을 aws에서 지원하는 기능을 활용해 배포하는 과정을 하기 전에 "서버에 올리는 작업은 특정 분야의 개발자가 아니면 자주 하지 않는 일이며 잘 모르는 경우도 많다" 라고, 강의내용을 따라하면 된다고 말씀하셨다 그렇게 안심을 하고 강의에 첨부된 자료를 따라 복사 붙여 넣기 하면서 시키는대로 했지만 패키지를 설치하는 과정에서 갑자기 터미널에 빨간 글씨가 나온다 검색해본다 -> 누군가 영어로 질문을 올려놨길레 번역기 돌리니 버전 문제라고 업그레이드 어쩌고 ... -> 아무튼 했다 '근데 왜 또 엑세스 어쩌고 하면서 에러가 나오는..

4주차

4주차 정리 프레임워크 : 서버를 만들기 위해 어느정도 만들어져 있는 꾸러미들 → 큰 형태의 라이브러리라 생각하면 비슷하다 (우린 Flask를 사용) 사용법 : 가상환경 python -m venv venv 그리고 활성화 pip install flask 프레임워크 설치 app.py 만들기 여기서 html 작업이 가능하지만 매우 복잡해진다 그래서 HTML을 분리해 따로 작업한 다음 연동한다 (프레임워크를 사용했기에 제작자가 지정한 방식에 따라 만들어야한다) -> render_template 사용 flask프레임워크에 render_template 기능 사용 작업하는 파일이 들어있는 폴더에 templates 폴더 (html파일을 넣어둡니다)를 만든다 따라서 작업하는 공간에 작업 중인 파일(app.py)와 tem..

3주차

3주차 정리 기본적인 것은 비슷하지만 변수 선언을 그냥 할 수 있다 예를 들면 a = 2 이런 방식 def 함수명(매개변수): 함수가 실행할 내용 if 조건 : 실행할 내용 for 변수 in 리스트 : 실행할 내용 괄호가 없는 대신에 줄맞춤이 중요하다 줄맞춤으로 괄호블록을 대신한다 python -m venv venv : 가상환경 만들기 가상환경을 만드는 이유는 라이브러리(패키지)를 따로 관리하기 위해서 → 요구 조건에 따라서 버전의 차이나 사용환경 등에 의해 라이브러리 간의 충돌이 일어날 수도 있다 → 가상환경이란 라이브러리를 담아두는 폴더이다 install 패키지명1 패키지명2 패키지명3 … : 라이브러리 설치 requests : 파이썬에서 fetch와 같은 역할을 하는 라이브러리 bs4 : 안에 Be..

2주차

2주차 Javascript 는 웹을 움직이게 하는 코드 jQuery는 html 뼈대를 선택해서 쉽게 조작( jQuery도 남들이 만든 코드모음, 라이브러리) Fetch는 짧은 코드로 요청을 보내고 받아올 수 있다 → 지금 강의에서는 url에서 데이터를 받아와 JSON 형태로 저장하는 것으로 활용되었다 Fetch에 대해서는 찾아봤지만 아직 내 수준에서 이해하기 힘들었다 function 함수, 정해진 일을 반복하는 장치 ... ... 영화 기록하기 ... 영화기록하기 버튼을 (onclick)클릭하면 hey()라는 함수를 불러와 실행시키고 그래서 안녕 이라는 문구가 나오게 된다 이런 움직임을 주는게 Javascript onclick이 HTML과 Javascript 를 연결해주는 어떤 다리 역할 당연히 이 외에..