전체 글
-
MVC,MVP,MVVM 패턴의 이해Programming/Design Pattern 2022. 2. 10. 15:03
소프트웨어 디자인 패턴이란, software engineering의 software design에서의 특정한 부분에서 반복적으로 발생하는 문제에 대하여 재사용이 가능하게끔 하는 해결책이다. 우선 들어가기에 앞서서 MVC 패턴은 자바와 스프링 프레임 워크를 처음 접하던 2016년 부터 써왔으며, 첫직장에서 엘라스틱 서치와 더불어 자바, 스프링,JSP 등을 이용하여 특허검색 시스템을 개발하면서 실무에서 사용해봤기 때문에 무척이나 익숙하였고, 이후 리액트와 노드 등을 이용하여 서비스를 개발할 때에도 은연중에 모델과 뷰 그리고 컨트롤러를 분리하는 디자인 패턴을 기본적으로 적용하여 개발하였었다. 하지만 자바+스프링 만큼 뚜렷하게 구분이 되었던 것은 아니고 뷰는 리액트, 모델과 컨트롤러는 노드를 이용하여 사용자의 ..
-
CORS(Cross-Origin Resource Sharing)에 대하여Programming/etc. 2022. 2. 10. 14:56
노드를 사용하여 백엔드를 구축하면 초반에 필히 셋팅 해주는 것 중에하나가 바로 CORS(Cross-Origin Resource Sharing)에 관한 것이다. 직역하면 교차 출처 자원 공유인데, 이는 추가 HTTP 헤더를 사용하여 어떠한 출처에서 실행 중인 웹 앱이 다른 출처에 선택한 자원에 접근 할 수 있는 권한을 부여하는 브라우저 체제이다. (출처:MDN 교차 출처 리소스 공유) 웹 앱은 리소스가 자신의 출처(프로토콜(https://),도메인(호스트,www.stackoverflow.com), 포트(:443))와 다를 때 교차 출처 HTTP 요청을 실행한다.(같으면 동일 출처(Same Origin)이다.) 이는 보안상의 이유로 브라우저가 스크립트에서 시작한 교차 출처 HTTP 요청의 제한으로 인한 것이..
-
일반 함수와 생성자 함수의 차이점Programming/javascript 2022. 2. 10. 14:51
생성자 함수와 일반 함수는 같은 함수이다. 이게 무슨 뜻 이냐면, 선언적 차이 일 뿐 별 다른 차이가 존재하지 않는다는 뜻이다. 첫째로, 생성자 함수의 코딩컨벤션(Coding Convention)은 객체와 같이 첫 글자가 대문자로 시작한다는 것이다. 이를 지키지 않을 경우 코드인스펙션(Code Inspection)을 통하여 정정하여야 하니 주의하자. 둘째로, 생성자 함수를 호출 및 초기화 할 땐 new 연산자를 사용한다. ex) function Pet(name){ // this.name = name; this.alive = true; }; let pet = new Pet("cozy"); console.log(pet.name);//cozy; console.log(pet.alive);//true; 위와 같이..
-
function과 arrow function의 차이점Programming/javascript 2022. 2. 10. 14:50
1. 일반 function은 this가 동적으로 바인딩 되지만, ex) function test () { // return{ // prop:10, func: function(){ // return this.prop; }; }; }; console.log(test.call({prop:100}).func()); 는 10이 출력된다.(매개변수 무시, 기존 값 출력) Arrow function의 this 키워드는 바로 상위의 함수에 정적 바인딩 된다. ex) function test(){ // return{ // prop:10, func: () => { // return this.prop; }; }; }; console.log(test.call({prop:100}).func()); 는 100이 출력된다.(기존 ..
-
var, let, const의 차이점Programming/javascript 2022. 2. 10. 14:43
매우 기초적인 것이고 이미 이전에도 여러번 본 것이지만, 그래도 정리를 해두는게 확실히 기억에 남으니 기록을 남긴다 •변수 선언 방식의 차이 var-변수재선언, 변수재할당 가능(mutable), 변수 선언과 초기화가 한번에 진행 let-변수재할당 가능(mutable), 변수 선언과 초기화가 따로 진행 const-모두 불가능, 초기 선언만 유효(immutable) •변수 호이스팅(1) 방식의 차이 호이스팅(hoisting): javascript에서 인터프리터가 변수와 함수의 선언 전에 미리 메모리(Memory) 공간을 할당 하는 것을 말한다.(출처:MDN 용어 사전, https://developer.mozilla.org/ko/docs/Glossary/Hoisting) var - 변수의 선언과 동시에 초기화..
-
[정렬]H-Index카테고리 없음 2022. 2. 10. 14:27
function solution(citations) { // let answer = 0; citations.sort((i,j) => j-i); for(let i in citations){ //피인용수가 논문 수와 같아지거나 작아지는 부분(몇번째 논문이 몇번 인용된 건 상관없이 내림차순 정렬 후 진행, //몇번째 논문을 알아내는게 아닌 피인용 횟수인 H-Index 구하는 것이기 때문)\ if(i < citations[i]){ //i번째 값(i번째 논문)이 피인용수보다 작으면 값을 증가, 첫번째 논문부터 피인용수와 논문의 번째수를 비교하고 //해당 번째 논문의 피인용수가 번째 수보다 많거나 같다면 값을 증가. answer++; }; }; return answer; };