목록분류 전체보기 (105)
HANA -J
1. 자바스크립트는 프로토타입 기반 객체지향 언어이다. 2. 프로토타입 기반 객체지향 언어는 클래스가 필요없는 객체지향 프로그래밍 언어이다. 3. ES5에서는 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속을 구현할 수 있다. var Person = (function(){ //생성자 함수 function Person(name) { this.name = name; } //프로토타입 메서드 Person.prototype.sayHi = function(){ console.log(`Hi! My name is ${this.name}`); }; //생성자 함수 반환 return Person; }()); //인스턴스 생성 var me = new Person('Hana'); me.sayHi(); //Hi My n..
1. 암묵적 결합 전역변수 선언은 코드 어디서든 참조하고 할당할 수 있는 변수를 사용하겠다는 의미, 이는 모든 코드가 전역 변수를 참조하고 변경 할 수 있는 암묵적 결합을 허용하는 것이다. 변수의 유효범위가 크면 클수록 가독성은 나빠지고 의도치 않게 상태가 변경될 수 있는 위험성이 높아진다. 2. 긴 생명주기 전역변수는 생명주기가 길다. 따라서 메모리 리소스도 오랜 가간 소비한다. 특히 var키워드는 변수의 중복선언을 허용하므로 생명 주기가 긴 전역 변수는 변수의 이름이 중복될 가능성이 있다. 변수 이름이 증복되면 의도치 않은 재할당이 이뤄진다. 3. 스코프 체인 상에서 종점에 존재 전역 변수는 스코프 체인상에서 종점에 존재. 변수를 검색할 때 전역변수가 가장 마지막에 검색된다. 따라서 검색속도가 가장느..
> 2021/11/22 - 2021/11/27 Node.js 기본주차 이번주차는 지난주에 이어서 CRUD게시판에 회원기능과 댓글기능을 추가 하는 거였다. 하고나서 하면서 깨달은 점인데 나는 아직 REST의 개념이 부족하고 REST하게 클린하게 코드를 적지 못한다. 물론 내가 코드를 다 짜서 기능을 구현하는거라 어쩔 수 없나? 그런 생각이 들지만... 나는 내가 직접 코드를 구현할 수 있는 사람이 되고 싶은데 어떻게 그런 사람이 될 수 있는지 아직 모르겟다.. 잘하고 싶은데 잘 안되니까 좀 짜증났나?? 이번주는 좀 그랬다 🥲 >ORM? Object-Relational mapping 객체관계매핑의 약어로 데이터베이스와 객체지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체지..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZYTsP/btrmgQQUI8H/41pqTqOv4b6CYCjkFycCU0/img.png)
>2021/11/27 테스트 주도 개발을 하는 이유? 1. 디버깅 시간을 단축해준다. 테스팅 환경이 구축되어있다면 자동화 된 유닛 테스팅으로 특정 버그를 쉽게 찾아낼 수 있다. 2. 테스트 코드와 함께 작성된 코드는 안정적인 어플리케이션이 된다. 3. 추가구현이나 재설계에 용이하다. 단위테스트? 단위테스트는 개발자가 수행하고 자신이 개발한 코드단위(모듈, 구성요소)를 테스트 한다. 소스코드의 개별 단위를 테스트하여 사용할 준비가 되었는지 확인하는 테스트 방법. => 메서드를 테스트하는 또다른 메서드 단위 테스트 조건 : 독립적이어야 하고, 다른 어떤 테스트에 의존하지 않는다. 단위 테스트 하는 이유 : 프로그램이 크고, 서버구동하는데 오래 걸릴경우 로컬에서 쉽게 코드를 실행하기 어렵다 => 유닛테스트로 ..
>2021/11/26 어제에 이어서 문자열 다루기 푸는데 ... 이제 쉬운문제는 고갈되어 가고 있다.. 골라풀 수 없지 🥲 >문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. >입출력예 입력값 ["abce", "abcd", "cdx"], 2 기댓값 ["abcd", "abce", "cdx"] >풀이 function solution(strings, n) { var answer = []; answer = strings.sort(); //만약 n 인덱스..
> 2021/11/25 > 문제설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. > 입출력예 s : "Zbcdefg" return : "gfedcbZ" > 풀이 function solution(s){ var answer = ''; var arr = s.split(""); arr.sort((a,b) =>{ //대소문자 구분해서 정렬 if(a>b) return -1; if(a
Node.js에서 require()함수는 일반적으로 외부의 모듈을 불러올 때 사용한다. // require()함수의 실행 구조 var require = (function(src){ //line 1 -> src를 받음 var fileAsStr = readFile(src) //line 2 -> src파일을 읽어 fileAsStr에 할당 var module.exports = {} //line 3 -> module.export에 빈 객체 할당 eval(fileAsStr) //line 4 -> fileAsStr을 eval함 return module.exports //line 5 -> 리턴함 })() > eval 코드 : 빌트인 전역 함수인 eval함수에 인수로 전달되어 실행되는 소스코드. => eval실행 컨텍스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EdjAB/btrl1XbFf5E/GDKsMe4Xdrnn1zKMXQ2cx1/img.png)
함수는 함수 정의를 통해 생성한다 fucntion add(x,y){ return x+y; } 2. 함수는 함수 정의만 으로 실행되는 것이 아니다! ⇒ 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해야한다. const result = add(2,5); 3. 함수를 사용하는 이유 함수는 객체타입의 값이다. ⇒ 따라서 이름(식별자)을 붙일수 있다. ⇒ 이름을 잘 붙이면 코드의 가독성을 향상 시킨다. ⇒ 유지보수가 쉽고, 코드의 신뢰성을 높인다. 4.함수 리터럴 함수는 객체타입의 값이다. 따라서 함수도 함수 리터럴로 생성할 수 있다. 함수 리터럴은 function키워드, 함수이름, 매개변수 목록, 함수 몸체로 구성된다. 일반 객체는 호출할 수 없지만 함수는 호출할 수 있다. //변수에 ..